Kubernetes集群yum安装部署

news2024/11/24 14:50:24

第四阶段

时  间:2023年8月10日

参加人:全班人员

内  容:

Kubernetes集群yum安装部署

目录

yum方式部署K8S集群

一、环境搭建

1、准备环境

2、关闭防火墙

3、修改master主机的计算机名设置host文件

二、安装部署

(一)安装master节点

(二)安装k8s-master上的node

(三)安装配置k8s-node1节点

(四)安装k8s-node2节点

(五)为所有node节点配置flannel网络

(六)配置docker开启加载防火墙规则允许转发数据

三、k8s常用资源管理

1、创建一个pod

2、pod管理

3、pod操作


yum方式部署K8S集群

一、环境搭建

1、准备环境

计算机说明,建议系统版本7.4或者7.6

主机名

IP地址

角色

硬件

k8s-master

192.168.100.131

Master,node

Etcd、apiserver、controlor-manager、scheduler、kube-proxy、docker、registry

K8s-node1

192.168.100.132

Node

Kubletel、kube-proxy、docker

K8s-node2

192.168.100.133

Node

Kubletel、kube-proxy、docker

2、关闭防火墙

[root@huyang1 ~]# systemctl stop firewalld

[root@huyang1 ~]# iptables -F

[root@huyang1 ~]# setenforce 0

 

3、修改master主机的计算机名设置host文件

[root@centos01 ~]# hostnamectl k8s-master

[root@centos01 ~]# bash

[root@k8s-master ~]# vim /etc/hosts

[root@k8s-master ~]#

scp /etc/hosts k8s-node01:/etc/hosts

[root@k8s-master ~]#

scp /etc/hosts k8s-node02:/etc/hosts

[root@centos02 ~]# hostnamectl  k8s-node1

[root@centos02 ~]# bash

[root@centos03 ~]# hostnamectl  k8s-node2

[root@centos03 ~]# bash

二、安装部署

(一)安装master节点

1)安装etcd配置etcd

[root@k8s-master ~]# yum -y install etcd

[root@k8s-master ~]# cp /etc/etcd/etcd.conf /etc/etcd/etcd.conf.bak

 

[root@k8s-master ~]# vim /etc/etcd/etcd.conf

 

[root@k8s-master ~]# systemctl start etcd

[root@k8s-master ~]# systemctl enable etcd

 

2)安装k8s-master节点

[root@k8s-master ~]#yum  -y install

kubernetes-master.x86_64

 

3)配置apiserver

[root@k8s-master ~]# ls /etc/kubernetes/

 

[root@k8s-master ~]# vim /etc/kubernetes/apiserver

配置如下:

 

4)配置controller和scheduler

[root@k8s-master ~]# vim /etc/kubernetes/config

配置如下:

 

5)启动k8s服务

[root@k8s-master ~]# systemctl start kube-apiserver.service

kube-controller-manager.service

kube-scheduler.service

[root@k8s-master ~]# systemctl enable kube-apiserver.service

kube-controller-manager.service

kube-scheduler.service

 

6)检查节点安装都是健康的

[root@k8s-master ~]# kubectl get componentstatus

 

(二)安装k8s-master上的node

1)安装node

[root@k8s-master ~]# yum install kubernetes node.x86_64

 

2)配置kubelet

[root@k8s-master ~]# vim /etc/kubernetes/kubelet

配置如下:

 

3)启动kubelet启动自动启动docker服务

[root@k8s-master ~]# systemctl start kubelet

[root@k8s-master ~]# systemctl enable kubelet

4)启动kubelet-proxy

[root@k8s-master ~]# systemctl start kube-proxy

[root@k8s-master ~]# systemctl enable kube-proxy

 

5)检查node节点

[root@k8s-master ~]# kubectl get nodes

 

(三)安装配置k8s-node1节点

1)安装node

[root@k8s-node1 ~]# yum install kubernetes node.x86_64

 

2)node1连接k8s-master

[root@k8s-node01 ~]# ls /etc/kubernetes/

 

[root@k8s-node1 ~]# vim /etc/kubernetes/config

 

3)配置kubelet

[root@k8s-node1 ~]# vim /etc/kubernetes/kubelet

 

4)启动服务

[root@k8s-node1 ~]# systemctl start kubelet

[root@k8s-node1 ~]# systemctl start kube-proxy

[root@k8s-node1 ~]# systemctl enable kubelet

[root@k8s-node1 ~]# systemctl enable kube-proxy

 

5)在master节点检测node节点状态

[root@k8s-master ~]# kubectl get nodes

 

(四)安装k8s-node2节点

1)安装node

[root@k8s-node2 ~]# yum install kubernetes node.x86_64

2)node1连接k8s-master

[root@k8s-node2 ~]# vim /etc/kubernetes/config

配置如下:

 

 

3)配置kubelet

[root@k8s-node2 ~]# vim /etc/kubernetes/kubelet

 

4)启动服务

[root@k8s-node2 ~]# systemctl start kubelet

[root@k8s-node2 ~]# systemctl start kube-proxy

[root@k8s-node2 ~]# systemctl enable kubelet

[root@k8s-node2 ~]# systemctl enable kube-proxy

 

5)在master节点检测node节点状态

[root@k8s-master ~]# kubectl get nodes

 

(五)为所有node节点配置flannel网络

1)在k8s-master节点安装flannel

[root@k8s-master ~]# yum install flannel -y

[root@k8s-master ~]# ls /etc/sysconfig/

[root@k8s-master ~]# vim /etc/sysconfig/flanneld

[root@k8s-master ~]# etcdctl set /atomic.io/network/config '{ "Network": "172.16.0.0/16" }' //配置网络

[root@k8s-master ~]# systemctl start flanneld

[root@k8s-master ~]# systemctl enable flanneld

[root@k8s-master ~]# ifconfig //查看多一个网络

[root@k8s-master ~]# systemctl restart docker //重新启动docker服务和flannel网络保持一致

[root@k8s-master ~]# systemctl enable docker

[root@k8s-master ~]# ifconfig

Ps备注:自动安装了docker容器,在这版本下,k8s和docker还是融合在一起使用的

2)配置node1节点flannel网络

[root@k8s-node1 ~]# yum install flannel -y

[root@k8s-node01 ~]# ls /etc/sysconfig/

[root@k8s-node1 ~]# vim /etc/sysconfig/flanneld

配置如下:

[root@k8s-node1 ~]# systemctl start flanneld

[root@k8s-node1 ~]# systemctl enable flanneld

[root@k8s-node1 ~]# systemctl restart docker

[root@k8s-node1 ~]# systemctl enable docker

[root@k8s-node01 ~]# ifconfig

 

3)安装node2节点flannel网络

[root@k8s-node2 ~]# yum install flannel -y

[root@k8s-node02 ~]# ls /etc/sysconfig/

[root@k8s-node2 ~]# vim /etc/sysconfig/flanneld

配置如下:

[root@k8s-node2 ~]# systemctl start flanneld

[root@k8s-node2 ~]# systemctl enable flanneld

[root@k8s-node2 ~]# systemctl restart docker

[root@k8s-node2 ~]# systemctl enable docker

[root@k8s-node02 ~]# ifconfig

 

4)测试docker容器跨宿主机通信

[root@k8s-node1 ~]# iptables -P FORWARD ACCEPT

//允许转发数据

[root@k8s-node2 ~]# iptables -P FORWARD ACCEPT

[root@k8s-master ~]# iptables -P FORWARD ACCEPT

[root@k8s-master ~]# docker pull busybox

//下载镜像,而后进入docker run -it busybox

[root@k8s-noded01 ~]# docker run -it busybox

[root@k8s-noded02 ~]# docker run -it busybox

/ # ping 172.16.31.2 //测试和其他docker宿主机之间通信

 

(六)配置docker开启加载防火墙规则允许转发数据

1)配置k8s-master节点

[root@k8s-master ~]# vim /usr/lib/systemd/system/docker.service

[root@k8s-master ~]# systemctl daemon-reload

[root@k8s-master ~]# systemctl restart docker

2)配置k8s-node1节点

[root@k8s-node1 ~]# vim /usr/lib/systemd/system/docker.service

[root@k8s-node1 ~]# systemctl daemon-reload

[root@k8s-node1 ~]# systemctl restart docker

3)配置k8s-node2节点

[root@k8s-node2 ~]# vim /usr/lib/systemd/system/docker.service

[root@k8s-node2 ~]# systemctl daemon-reload

[root@k8s-node2 ~]# systemctl restart docker

三、k8s常用资源管理

1、创建一个pod

1)创建yuml文件

[root@k8s-master ~]# mkdir k8s

[root@k8s-master ~]# vim ./k8s/nginx.yaml

配置如下:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: web
spec:
  containers:
    - name: nginx01
      image: nginx:1.16
      ports:
        - containerPort: 80
    - name: busybox
      image: docker.io/busybox:latest
      command: ["sleep","3600"]
      ports:
        - containerPort: 80

 

2)创建容器

方法一.  yum安装

[root@k8s-master ~]#yum install *rhsm*

方法二 (我是用这方法解决的)

执行命令:

[root@k8s-master ~]#wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm

[root@k8s-master ~]#rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem    

前两个命令会生成/etc/rhsm/ca/redhat-uep.pem文件.  

[root@k8s-master ~]#docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest

 

[root@k8s-master ~]# kubectl create -f ./k8s/nginx.yaml

 

3)查看所有pod创建运行状态

[root@k8s-master ~]# kubectl get pod

 

4)查看指定pod资源

[root@k8s-master ~]# kubectl get pod nginx

 

5)查看pod运行的详细信息

[root@k8s-master ~]# kubectl describe pod nginx

[root@k8s-master ~]# kubectl get pod nginx -o wide //显示调度节点

 

6)验证运行的pod

[root@k8s-master ~]#  kubectl get pod nginx -o wide

 

2、pod管理

1)删除pod

[root@k8s-master ~]# kubectl delete  pod nginx

2)查看删除pod无法找到

[root@k8s-master ~]#  kubectl get pod nginx -o wide

 

3)创建pod

[root@k8s-master ~]# kubectl create -f ./k8s/nginx.yaml

 

4)发现最先创建的pod运行在k8s-master节点上,下载镜像速度太慢没法运行

[root@k8s-master ~]#  kubectl get pod nginx -o wide

 

5)访问pod节点中的服务

[root@k8s-master ~]# curl -I http://172.16.7.3

 

3、pod操作

1)在一个pod中修改配置文件运行多个业务容器,

创建资源test1

[root@k8s-master ~]# vim ./k8s/nginx.yaml

配置如下:

apiVersion: v1
kind: Pod
metadata:
  name: test1
  labels:
    app: web
spec:
  containers:
    - name: nginx01
      image: nginx:1.16
      ports:
        - containerPort: 80
    - name: busybox
      image: docker.io/busybox:latest
      command: ["sleep","3600"]
      ports:
        - containerPort: 80

[root@k8s-master ~]# kubectl create -f ./k8s/nginx.yaml

 

2)创建资源test2

[root@k8s-master ~]# vim ./k8s/nginx.yaml

配置如下:

apiVersion: v1
kind: Pod
metadata:
  name: test2
  labels:
    app: web
spec:
  containers:
    - name: nginx01
      image: nginx:1.16
      ports:
        - containerPort: 80
    - name: busybox
      image: docker.io/busybox:latest
      command: ["sleep","3600"]
      ports:
        - containerPort: 80

[root@k8s-master ~]# kubectl create -f ./k8s/nginx.yaml

3)查看资源使用情况

[root@k8s-master ~]# kubectl get pod -o wide

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/860548.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV实验箱---机械臂自由抓取例程开发使用手册

目录 一、项目介绍 项目背景: 相机型号: 二、机械臂自由抓取演示 使用注意事项: 操作步骤: 三、核心代码讲解 ① 机械臂相关运动驱动代码 ② BGR图像转换伪彩色深度图像代码 ③ 目标跟随及抓取动作代码 开发者:…

CLIP论文精度

CLIP论文精度 Zero-shot CLIP多模态模型 Image Endecoder是一个图片编码器,既可以是ResNet,也可以是Vision Transformer. Text Encoder和Image Encoder产生的两组特征进行对比学习(无监督训练) 分类头?“分类头” 是指网络结…

第02天 什么是JWT ?

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 每天一个知识点 ✨特色专栏&#xff1…

MChat-Gpt V1.0.0 (将ChatGpt机器人接入内网供全体使用)

Github>https://github.com/MartinxMax/MChat-Gpt 首页 MChat-Gpt V1.0.0将ChatGpt机器人接入内网供全体使用 你需要一个ChatGpt账户如果您在中国则需要使用代理访问,设置TUN代理模式 安装依赖 选择你的系统进行安装 服务端配置 #python3 ChatGpt_Server.py -h 使用&a…

cve-2021-2394 weblogic反序列化漏洞分析

前几天weblogic 7月例行更新中,修复了一个Rce漏洞。该漏洞性质属于绕过之前的反序列化漏洞补丁。要了解这个漏洞的原因,我们首先要学习其他几个漏洞的原理。 一 weblogic 反序列化绕过指南 本章节只是大概讲解一下如何绕过weblogic反序列化漏洞的补丁。…

【金融量化】Python实现根据收益率计算累计收益率并可视化

1 理论 理财产品(本金100元) 第1天:3% :(13%) ✖ 100 103 第2天:2% :(12%)✖ 以上 103 2.06 第3天:5% : (15%)✖ 以上…

【指针模拟实现库函数strlen】

指针模拟实现库函数strlen 1.库函数strlen含义 strlen是用来计算字符串长度的。(不包含’\0’) 2.assert断言介绍 assert.h 头⽂件定义了宏 assert() ,⽤于在运⾏时确保程序符合指定条件,如果不符合,就报 错终⽌运⾏。这个宏常常…

【算法|数组】滑动窗口

算法|数组——滑动窗口 引入 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件的子数组,返回 0 。 示例…

putty使用记录

在官网下载并安装putty 一、SSH 二、FTP open 192.168.1.118 put -r C:\Users\Administrator\Desktop\test /opt/lanren312/test # 上传(文件夹) get -r /opt/lanren312/test C:\Users\Administrator\Desktop\test2 # 下载(文件夹&#xff…

Linux Sudo 史上最大bug

自从安全厂商于近期公开了Linux系统中存在Sudo漏洞后,红帽、SUSE、Debian及Ubuntu等相关发行版本便开始相继推出了针对Linux Sudo漏洞的更新补丁,来避免由于Sudo漏洞而将本地端系统的最高权限陷于风险之中。 Sudo是linux系统管理指令,是允许系…

Telerik UI for ASP.NET Core Crack

Telerik UI for ASP.NET Core Crack Telerik ASP.NET Core还包括MVC和Kendo UI捆绑包(用于JavaScript)、Figma的设计工具包以及文档处理库、用于ASP.NET Core的Telerik REPL、RTL支持、辅助功能和键盘导航、主题化、虚拟课堂培训、详细文档、演示、KBs和世界级支持。使用一整套…

树结构--介绍--二叉树遍历的递归实现

目录 树 树的学术名词 树的种类 二叉树的遍历 算法实现 遍历命名 二叉树的中序遍历 二叉树的后序遍历 二叉树的后序遍历迭代算法 二叉树的前序遍历 二叉树的前序遍历迭代算法 树 树是一种非线性的数据结构,它是由n(n≥0)个有限节点组成一个具有层次关系…

Java基础篇--基本数据类型

目录 前言: 内置数据类型 类型默认值 示例: 内置数据类型转换 自动类型转换(隐式类型转换): 强制类型转换(显式类型转换): 隐含强制类型转换: 引用类型 前言: …

Java基础练习八(二维数组)

1.装水问题 有一个 异形 容器,用一个 n * n 的二维数组来表示。其中 1 表示容器实心部分, 0 表示空心部分。现使用此容器装水,能装多少水(每个元素都表示一份水,只有有挡板的部分能装水)? publi…

【学习】若依源码(前后端分离版)之 “ 获取角色权限信息及动态路由”

大型纪录片:学习若依源码(前后端分离版)之 “ 获取角色权限信息及动态路由” 获取用户信息获取路由信息 承接上回,我们发现在login请求后面跟了两个请求,今天我们就来了解一下两个请求的含义。 获取用户信息 先看 ‘…

Vulhub之Apache HTTPD 换行解析漏洞(CVE-2017-15715)

Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。 1、docker-compose build、docker-compo…

yolov5的报错

【定期水一期】 (这个问题很抓马,可以看一下这篇文章:Git Bash 教程!【不是所有人都会用Git】) 一:没有cv2这个模块 解决方案: pip install opencv-python -i http://pypi.douban.com/simple/…

Java用方法实现数组拷贝

Java用方法实现数组拷贝 需求分析代码实现小结Time 需求分析 1.首先,考虑方法是否需要接收数据处理? 该方法的目的是拷贝数组,拷贝哪一个数组呢? 需要调用者传递 所以,参数应该是一个数组 2.接着,考虑方法是…

k8s常用资源管理

目录 Pod(容器组):Pod是Kubernetes中最小的部署单元,可以包含一个或多个容器。Pod提供了一种逻辑上的封装,使得容器可以一起共享网络和存储资源 1、创建一个pod 2、pod管理 pod操作 Pod(容器组&#xff…

单机游戏防破解方案解析

近年来,游戏市场用户规模趋于稳定,游戏市场进入了存量时代,各赛道“人满为患”,如何在一片红海中站稳脚跟成了厂商的必修课。 而在快节奏的社会环境下,脱离了网游社交粘性,主打清爽、自由的单机游戏&#…