master節點的部署介紹和前置工作


目錄

組件介紹

kubernetes master節點運行組件如下: kube-apiserverkube-schedulerkube-controller-managerkube-nginx

  • kube-apiserver、kube-scheduler、kube-controller-manager均以多實例模式運行
  • kube-scheduler和kube-controller-manager會自動選舉一個leader實例,其他實例處於阻塞模式,當leader掛了后,重新選舉產生的leader,從而保證服務可用性
  • kube-apiserver是無狀態的,需要通過kube-nginx進行代理訪問,從而保證服務可用性

以下操作都在K8s-01操作

下載kubernetes二進制包,並分發到所有master節點

cd /opt/k8s/work
wget https://dl.k8s.io/v1.15.6/kubernetes-server-linux-amd64.tar.gz
tar -xzvf kubernetes-server-linux-amd64.tar.gz
cd kubernetes
tar -xzvf  kubernetes-src.tar.gz

下載解壓的工作如果在 部署前期准備工作 做過,這里就不需要重復操作。

將master所需要的二進制文件拷貝到所有master機器上

cd /opt/k8s/work
source /opt/k8s/bin/environment.sh
for node_ip in ${MASTER_IPS[@]}
  do
    echo ">>> ${node_ip}"
    scp kubernetes/server/bin/{apiextensions-apiserver,cloud-controller-manager,kube-apiserver,kube-controller-manager,kube-proxy,kube-scheduler,kubeadm,kubectl,kubelet,mounter} root@${node_ip}:/opt/k8s/bin/
    ssh root@${node_ip} "chmod +x /opt/k8s/bin/*"
  done

kube-apiserver 高可用

  • 使用Nginx 4層透明代理功能實現k8s節點(master節點和worker節點)高可用訪問kube-apiserver的步驟
  • 控制節點的kube-controller-manager、kube-scheduler是多實例部署,所以只要一個實例正常,就可以保證集群高可用
  • 集群內的Pod使用k8s服務域名kubernetes訪問kube-apiserver,kube-dns會自動解析多個kube-apiserver節點的IP,所以也是高可用的
  • 在每個Nginx進程,后端對接多個apiserver實例,Nginx對他們做健康檢查和負載均衡
    kubelet、kube-proxy、controller-manager、schedule通過本地nginx (監聽我們vip 10.0.20.10)訪問kube-apiserver,從而實現kube-apiserver高可用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM