kubernetes集群的安装部署
1)基础环境部署
准备三台虚拟机
主机名 |
IP地址 |
角色 |
k8s-master |
192.168.100.8 |
master , node |
k8s-node1 |
192.168.100.9 |
node1 |
k8s-node2 |
192.168.100.10 |
node2 |
三台虚拟机设置主机名
#hostname k8s-master
#hostname k8s-node1
#hostname k8s-node2
配置hosts解析
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711114742536.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
将配置 hosts解析文件复制到其他节点
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021071111495854.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
使用其他节点ping通测试
在node2节点上测试是否能ping通master
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711115041113.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
关闭selinux以及防火墙
[root@k8s-node1 ~]# vim /etc/selinux/config
[root@k8s-node1 ~]# systemctl stop firewalld
[root@k8s-node1 ~]# systemctl disabled firewalld
Unknown operation 'disabled'.
[root@k8s-node1 ~]# systemctl disable firewalld
[root@k8s-node1 ~]# systemctl stop iptables
Failed to issue method call: Unit iptables.service not loaded.
[root@k8s-node1 ~]# systemctl stop iptables
Failed to issue method call: Unit iptables.service not loaded.
[root@k8s-node1 ~]# setenforce 0
setenforce: SELinux is disabled
[root@k8s-node1 ~]#
配置阿里yum源
yum install wget -y && rm -fr /etc/yum.repos.d/* &&wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && yum clean all && yum makecache
安装常用工具
yum install net-tools vim lrzsz wget tree screen lsof tcpdump -y
2)master节点与node节点组件架构图
![在这里插入图片描述](https://img-blog.csdnimg.cn/202107111158506.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
在k8s中master节点只需要安装etcd、controller-manager、api-server、scheduler四个组件即可,任何节点安装其四个组件为master节点也就是控制节点,计算节点node,安装kubelet、kub-proxy其中会自动安装docker容器服务,k8s-master节点安装kubelet和kub-proxy组件也可以作为node节点使用。
3)master节点安装etcd服务
[root@k8s-master /]# yum install etcd -y
修改etcd服务的配置文件
[root@k8s-master /]# vim /etc/etcd/etcd.conf
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711122602935.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
修改监听地址为0.0.0.0:2379,监听所有的IP的2379端口
修改集群IP地址,是指的是etcd集群,写本机地址
启动etcd服务
[root@k8s-master /]# systemctl start etcd
[root@k8s-master /]# systemctl enable etcd
ln -s '/usr/lib/systemd/system/etcd.service' '/etc/systemd/system/multi-user.target.wants/etcd.service'
[root@k8s-master /]#
服务启动之后会开启两个端口
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711123323352.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
会监听0.0.0.0:2379和127.0.0.1:2380两个端口,监听任意IP的2379端口。2379是对外提供服务用的,k8s通过etcd写入数据是通过2379端口。etcd集群之间数据互相同步使用的是2380端口
4)安装kubernetes-master服务
会自动安装api-server、controller-manager、scheduler组件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711124019697.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711124146188.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
安装kubernetes-master服务依赖kunernetes-client,client组件有kubctl命令
5)编辑master配置文件
master组件包含api-server、controller、schedule三个组件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711124637136.png)
配置api-server
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711125134420.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
第一处为api-server服务监听的地址为0.0.0.0,如果仅本机能访问则为127.0.0.1
第二处为监听端口为8080,api-server是k8s的核心服务,装有api-server的服务称之为master节点
第三处 通过10250端口访问
第四处为etcd地址。etcd对外提供服务使用的是2379端口
配置controller-manager和schedule,两服务共用一个配置文件/etc/kubernetes/config
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711130836207.png)
启动服务
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711131108662.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
查看服务状态
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711131254240.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
显示三个服务均显示正常
5)部署node节点
安装kubernetes node服务
[root@k8s-master /]# yum install kubernetes-node -y
在安装node服务时会自动安装docker服务
编辑/etc/kubernetes/config文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711161144771.png)
编辑kubelet配置文件
[root@k8s-master /]#vim /etc/kubernetes/kubelet
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711160955911.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
第一处为kubelet-address监听地址
第二处为kubelet端口
第三处为hostname标签(可以是IP,或字符,或主机名)
第四处api-server的地址
查看docker容器的状态
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711161624853.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
启动kubelet服务会自动启动docker
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711161740501.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
启动kube-proxy服务
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711161906199.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
在master节点上查看节点状态
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711162042297.png)
此处的NAME为kubelet配置文件中的HOSTNAME
配置node1节点
k8s-node1 /etc/kubernetes/目录下有三个配置文件:config、kubelet、proxy
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711162338928.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
修改config文件,添加为master地址
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711162509385.png)
修改node1节点的kubelet配置文件
[root@k8s-node1 /]#vim /etc/kubernetes/kubelet
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711162833581.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
第一处为监听地址
第二处为kubelet端口
第三处为HOSTNAME
第四处为api-server地址
启动node1上的kubelet以及kube-proxy服务
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711163319930.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
在master节点上查看是否有节点信息
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711163417823.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
配置node2节点
如上node1配置步骤
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711163700940.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
master节点查看node2节点是否配置成功
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210711163753980.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1emhpYmluNjY2,size_16,color_FFFFFF,t_70)
综上kubernetes集群配置完毕,1台master节点(控制节点),3台node节点(计算节点)