二进制搭建k8s集群——部署多master
二进制搭建k8s集群——部署多master
架构说明:
-
node节点的kubelet只能对接一个master节点的apiserver,不可能同时对接多个master节点的apiserver。简而言之,node节只能有一个master来领导。
-
kubelet和kube-proxy是通过kubelet.kubeconfig和kube-proxy.kubeconfig文件中的server参数进行对接 master节点的。
-
所以在多master节点的环境下,需要有nginx负载均衡器来进行调度,而且需要进行keepalived高可用的构建(主从两个节点) ,防止主节点宕机导致整个k8s集群的不可用。
部署两台或者三台master都可以:
- 三台:多层保障、负载均衡(减轻每台master的压力)、选举机制选出leader。
- 两台:也可实现负载均衡,负载压力没那么大的情况下可选两台,同时考虑到成本。
部署master02 节点
master02:192.168.44.50
##------------ 1、 master01节点,拷贝文件到master02 -------------------------------
#从 master01 节点上拷贝证书文件、各master组件的配置文件和服务管理文件到 master02 节点
scp -r /opt/etcd/ root@192.168.44.50:/opt/
scp -r /opt/kubernetes/ root@192.168.44.50:/opt/
scp /usr/lib/systemd/system/{
kube-apiserver,kube-controller-manager,kube-scheduler}.service root@192.168.44.50:/usr/lib/systemd/system/
scp -r /root/.kube/ master02:/root/
##------------ 2、master02节点,修改配置文件并启动相关服务-------------------------------
#修改配置文件kube-apiserver中的IP
vim /opt/kubernetes/cfg/kube-apiserver
KUBE_APISERVER_OPTS="--logtostderr=true \ #输出日志,false表示标准错误不输出到屏幕,而是输出到日志中。true表示标准错误会输出到屏幕。
--v=4 \ #日志级别
--etcd-servers=https://192.168.44.50:2379,https://192.168.44.30:2379,https://192.168.44.40:2379 \ #etcd节点的IP通信地址
--bind-address=192.168.44.50 \ #修改,当前绑定的内网IP监听的地址
--secure-port=6443 \ #基于HPPTS开放端口
--advertise-address=