介绍
kubernetes和docker以及服务之间的关系

kubernetes集群包括master主机和node从机 以下放个简单的关系图 具体文档介绍地址可参考 Kubernetes教程

image-20211224103654696

1.安装准备
1.1.所有机器更新yum源

yum update -y
1.2 所有机器 安装 epel-release源 这个软件为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux这个软件包会自动配置yum的软件仓库。

yum -y install epel-release
1.3 所有机器关闭防火墙 关闭 swap分区 关闭 SELinux (seLinux是一个安全增强型的linux内核模块,也是linux的一个安全子系统)

#关闭防火墙
systemctl stop firewalld

#禁用开机自启动
systemctl disable firewalld

#关闭SELinux
setenforce 0 #临时关闭

#永久关闭selinux:
vim /etc/sysconfig/selinux
SELINUX=enforcing 替换为SELINUX=disabled 需重启机器

#关闭swap
swapoff -a #临时关闭

#永久关闭swap
vi /etc/fstab #注释掉最后一行关于swap的配置 可参考我的Linux分类中的其他博客
1.4 机器准备

服务器 操作系统 IP 需要组件
master centOs7 192.168.33.229 etcd,kube-apiserver,kube-scheduler,kube-controller-manager,docker(看个人需要)
node1 centOs7 192.168.33.226 kube-proxy,kubelet,docker
node2 centOs7 192.168.33.227 kube-proxy,kubelet,docker
1.5 组件介绍:

master主机组件:

   etcd:提供分布式数据存储的数据库吧,用于持久化存储k8s集群的配置和状态

   kube-apiserver:api service提供了http rest接口,是整个集群的入口,K8s其它组件之间不直接通信,而是通过API server通信的。(只有API server连接了etcd,即其它组件更新K8s集群的状态时,只能通过API server读写etcd中的数据)

   kube-scheduler:scheduler负责资源的调度

   kube-controller-manager:整个集群的管理控制中心,此组件里面是由多个控制器组成的

node机器组件:

   kube-proxy:用来负载均衡网络流量

   kubelet:用来管理node节点机上的容器

   docker:运行项目镜像容器的组件

  组件具体介绍这里可以参考 官方kubernetes组件介绍

2.在Master机器上安装kubernetes-master和etcd
2.1 分别修改三台服务器的 /etc/hosts 文件 增加以下ip配置

192.168.33.229 k8s-master
192.168.33.226 k8s-node1
192.168.33.227 k8s-node2

img

2.2 使用yum安装etcd、kubernetes-master

yum -y install etcd kubernetes-master
2.3.编辑 vi /etc/etcd/etcd.conf 修改如下

img

2.4 编辑 vi /etc/kubernetes/apiserver 修改如下

img

2.5 编辑 vi /etc/kubernetes/config 修改如下

img

2.6 启动 etcd ,kube-apiserver, kube-controller-manager, kube-scheduler 等服务 并设置开机自启动

for SERVICES in etcd docker kube-apiserver kube-controller-manager kube-scheduler;

do systemctl restart $SERVICES;

systemctl enable $SERVICES;

systemctl status $SERVICES;

done

到此 以上Master主机配置完毕

3.接下来配置node从机配置
3.1 在node1机器上安装 kubernetes-node 组件 192.168.33.226

yum -y install kubernetes-node
3.2 编辑 /etc/sysconfig/flanneld 修改如下 (flannel暂不安装后续单独做配置 该步骤可忽略 不影响其他)

img

3.3 编辑 vi /etc/kubernetes/config 修改如下

img

3.4. 编辑 vi /etc/kubernetes/kubelet 修改如下

img

3.5 启动 kube-proxy,kubelet, docker 等服务 并设置开机自启

for SERVICES in docker kubelet kube-proxy;do systemctl start $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES; done
node2服务器参考node1配置

至此 k8s 的主从服务器都配置完毕
然后在master服务器上执行如下命令 查看运行的node节点机器

kubectl get nodes
成功如下

img