centos

k8s在centos上的高可用配置

小樊
72
2025-07-02 20:56:51
栏目: 智能运维

在CentOS上部署Kubernetes(K8s)以实现高可用性是一个复杂但可行的过程,涉及到多个方面的配置和最佳实践。以下是一个基本的步骤指南:

环境准备

安装Docker和Kubernetes组件

在所有节点上安装Docker和Kubernetes所需的软件依赖:

yum install -y docker kubelet kubeadm kubectl
systemctl start docker
systemctl enable docker
systemctl enable kubelet
systemctl start kubelet

初始化Master节点

在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以允许Pod之间的通信:

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

加入Worker节点

将Worker节点加入到Kubernetes集群中:

sudo kubeadm join <MASTER_IP>:6443 --token <TOKEN> --discovery-token-ca-cert-hash <HASH>

配置负载均衡器

为了实现Master节点的高可用访问,可以使用HAProxy和Keepalived。

安装HAProxy和Keepalived

在两台Master节点上安装HAProxy和Keepalived:

yum install haproxy keepalived -y

配置HAProxy

编辑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

编辑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

注意事项

0
看了该问题的人还看了