K8S-Demo集群实践09:部署高可用kube-scheduler集群
kube-scheduler部署在3个master节点,启动后将通过竞争选举机制产生一个leader节点,其它节点为阻塞状态。
当leader节点不可用后,剩余节点将再次进行选举产生新的leader节点,从而保证服务的高可用。
一、创建和分发kube-scheduler的kubeconfig文件
创建kube-scheduler的kubeconfig文件
[root@master1 ~]# cd /opt/install/kubeconfig
[root@master1 kubeconfig]# kubectl config set-cluster k8s-demo \
--certificate-authority=/opt/cert/ca.pem \
--embed-certs=true \
--server="https://##NODE_IP##:6443" \
--kubeconfig=kube-scheduler.kubeconfig
[root@master1 kubeconfig]# kubectl config set-credentials system:kube-scheduler \
--client-certificate=/opt/cert/kube-scheduler.pem \
--client-key=/opt/cert/kube-scheduler-key.pem \
--embed-certs=true \
--kubeconfig=kube-scheduler.kubeconfig
[root@master1 kubeconfig]# kubectl config set-context system:kube-scheduler \
--cluster=k8s-demo \
--user=system:kube-scheduler \
--kubeconfig=kube-scheduler.kubeconfig
分发kube-scheduler的kubeconfig文件
[root@master1 ~]# cd /opt/install/kubeconfig
[root@master1 kubeconfig]# for node_ip in ${MASTER_IPS[@]}
do
echo ">>> ${node_ip}"
sed -e "s/##NODE_IP##/${node_ip}/" kube-scheduler.kubeconfig > kube-scheduler-${node_ip}.kubeconfig
scp kube-scheduler-${node_ip}.kubeconfig root@${node_ip}:/opt/k8s/etc/kube-scheduler.kubeconfig
done
二、创建和分发kube-scheduler参数配置文件
创建模板文件kube-scheduler.yaml.template
[root@master1 ~]# cd /opt/install/kubeconfig
[root@master1 kubeconfig]# cat >kube-scheduler.yaml.template <<EOF
apiVersion: kubescheduler.co