實現CentOS上的Kubernetes(K8s)高可用部署涉及多個步驟,包括安裝和配置關鍵組件、初始化Master節點、加入Worker節點、配置負載均衡器以及驗證集群的高可用性。以下是一個詳細的步驟指南:
在所有節點上安裝Docker和Kubernetes所需的軟件依賴:
yum install -y docker kubelet kubeadm kubectl
systemctl start docker
systemctl enable docker
在Master節點上初始化Kubernetes集群:
kubeadm init --apiserver-advertise-address <MASTER_IP>:6443 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.20.0 --pod-network-cidr 10.244.0.0/16 --ignore-preflight-errors
安裝并配置網絡插件,例如Calico:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
在Worker節點上運行以下命令加入集群:
sudo kubeadm join <MASTER_IP>:6443 --token <TOKEN> --discovery-token-ca-cert-hash <HASH>
為了實現Master節點的高可用訪問,可以使用HAProxy和Keepalived。
在兩臺Master節點上安裝HAProxy和Keepalived:
yum install haproxy keepalived -y
編輯HAProxy配置文件:
vim /etc/haproxy/haproxy.cfg
添加以下內容:
frontend k8s
bind *:16443
mode tcp
option tcplog
tcp-request inspect-delay 5s
default_backend k8s
backend k8s
mode tcp
option tcplog
option tcp-checkbalance roundrobin
server k8s-server1 <MASTER_IP>:6443 check
server k8s-server2 <MASTER_IP>:6443 check
編輯Keepalived配置文件:
vim /etc/keepalived/keepalived.conf
添加以下內容:
vrrp_script check_server {
script "/etc/keepalived/check.sh"
interval 3
weight -10
fall 2
rise 1
}
vrrp_instance VI_1 {
state BACKUP
interface ens224
mcast_src_ip <VIP>
virtual_router_id 51
priority 50
advert_int 2
authentication {
auth_type PASS
auth_pass 123
}
virtual_ipaddress {
192.168.3.254/24
}
track_script {
check_server
}
}
完成以上步驟后,驗證集群中Master節點的高可用性以及負載均衡器的工作是否正常:
kubectl get nodes
kubectl get componentstatus
通過以上步驟,你可以在CentOS上成功部署一個高可用的Kubernetes集群。請根據你的具體環境和需求調整配置。