Kubernetes高可用集群部署
部署架构:
Master 组件:
kube-apiserver
Kubernetes API,集群的统一入口,各组件协调者,以HTTP API提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给Etcd存储。
kube-controller-manager
处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的。
kube-scheduler
根据调度算法为新创建的Pod选择一个Node节点。
Node 组件:
kubelet
kubelet是Master在Node节点上的Agent,管理本机运行容器的生命周期,比如创建容器、Pod挂载数据卷、
下载secret、获取容器和节点状态等工作。kubelet将每个Pod转换成一组容器。
kube-proxy
在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。
docker
运行容器。
第三方服务:
etcd
分布式键值存储系统。用于保持集群状态,比如Pod、Service等对象信息。
下图清晰表明了Kubernetes的架构设计以及组件之间的通信协议。
一、环境规划
角色
IP
组件
K8S-MASTER01
10.247.74.48
kube-apiserver
kube-controller-manager
kube-scheduler
etcd
kubelet
kube-proxy
flannel
Nginx
keepalived
K8S-MASTER02
10.247.74.49
kube-apiserver
kube-controller-manager
kube-scheduler
etcd
kubelet
kube-proxy
flannel
Nginx
keepalived
K8S-MASTER03
10.247.74.50
kube-apiserver
kube-controller-manager
kube-scheduler
etcd
kubelet
kube-proxy
flannel
Nginx
keepalived
K8S-NODE01
10.247.74.53
kubelet
kube-proxy
docker
flannel
K8S-NODE02
10.247.74.54
kubelet
kube-proxy
docker
flannel
K8S-NODE03
10.247.74.55
kubelet
kube-proxy
docker
flannel
K8S-NODE04
10.247.74.56
kubelet
kube-proxy
docker
flannel
K8S-VIP
10.247.74.51
软件版本信息
软件
版本
Linux操作系统
Red Hat Enterprise 7.6_x64
Kubernetes
1.14.1
Docker
18.06.3-ce
Etcd
3.0
Nginx
17.0
1.1系统环境准备(所有节点)
#设置主机名及关闭selinux,swap分区
cat <<EOF >>/etc/hosts 10.247.74.48 TWDSCPA203V 10.247.74.49 TWDSCPA204V 10.247.74.50 TWDSCPA205V 10.247.74.53 TWDSCPA206V 10.247.74.54 TWDSCPA207V 10.247.74.55 TWDSCPA208V 10.247.74.56 TWDSCPA209V 10.247.74.51 K8S-VIP EOF sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config swapoff -a sed -i 's/\/dev\/mapper\/centos-swap/\#\/dev\/mapper\/centos-swap/g' /etc/fstab systemctl enable ntpd systemctl start ntpd