【轻松掌握K8s高可用集群搭建】从入门到实战,一步到位!

发布时间:2025-05-24 21:25:04

引言

Kubernetes(简称K8s)是一种风行的容器编排东西,可能主动化安排、扩大年夜跟管理容器化利用顺序。高可用集群是K8s集群的一种安排形式,经由过程多个节点跟负载均衡技巧,确保集群的牢固性跟坚固性。本文将具体介绍K8s高可用集群的搭建过程,从入门到实战,帮助你轻松控制这一技能。

情况筹备

在开端搭建高可用集群之前,我们须要筹备以下情况:

  1. 效劳器:至少3台效劳器,推荐设置为2核CPU、4G内存、40G硬盘。
  2. 操纵体系:CentOS 7.9 x64 或 Ubuntu 20.04 LTS。
  3. 软件:Docker 20.10、Kubernetes 1.28.0、Keepalived、Haproxy。

步调一:效劳器初始化

  1. 封闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  1. 封闭SELinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
  1. 封闭swap
swapoff -a
sed -ri 's/.swap./#&/' /etc/fstab
  1. 设置主机名跟hosts文件
hostnamectl set-hostname <hostname>
echo "192.168.1.100 k8s-master1" >> /etc/hosts
echo "192.168.1.101 k8s-master2" >> /etc/hosts
echo "192.168.1.102 k8s-node1" >> /etc/hosts
  1. 设置时光同步
sudo apt install chrony -y
sudo vim /etc/chrony/chrony.conf
# master节点设置
confdir /etc/chrony/conf.d
pool ntp.aliyun.com iburst maxsources 4
pool time1.cloud.tencent.com iburst maxsources 2

步调二:安装Docker

  1. 安装Docker
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
  1. 启动Docker效劳
sudo systemctl start docker
sudo systemctl enable docker
  1. 设置Docker镜像减速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://<镜像减速器地点>"]
}
EOF
sudo systemctl restart docker

步调三:安装Kubernetes

  1. 安装kubeadm、kubelet跟kubectl
sudo yum install -y kubeadm kubelet kubectl
sudo systemctl start kubelet
sudo systemctl enable kubelet
  1. 初始化集群
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
  1. 设置kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  1. 安装Pod收集插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

步调四:搭建高可用集群

  1. 安装Keepalived跟Haproxy
sudo yum install -y keepalived haproxy
  1. 设置Keepalived
sudo vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.1.100/24 dev eth0 label eth0:0
    }
}
  1. 设置Haproxy
sudo vim /etc/haproxy/haproxy.cfg
global
    log 127.0.0.1 local2
    maxconn 4096
    chroot /var/lib/haproxy
    user haproxy
    group haproxy
    daemon
    stats socket /var/lib/haproxy/stats level admin

defaults
    log         global
    mode        http
    option      httplog
    option      http-server-close
    option      forwardfor
    option      redispatch
    retries     3
    timeout     queue 5s
    timeout     connect 5000ms
    timeout     client 50000ms
    timeout     server 50000ms

listen k8s-master
    bind 192.168.1.100:6443
    mode tcp
    option tcplog
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms
    balance roundrobin
    server k8s-master1 192.168.1.100:6443 check inter 2000 rise 2 fall 5
    server k8s-master2 192.168.1.101:6443 check inter 2000 rise 2 fall 5
    server k8s-master3 192.168.1.102:6443 check inter 2000 rise 2 fall 5
  1. 启动Keepalived跟Haproxy效劳
sudo systemctl start keepalived
sudo systemctl start haproxy
sudo systemctl enable keepalived
sudo systemctl enable haproxy
  1. 设置集群节点
sudo kubeadm join 192.168.1.100:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

步调五:验证集群状况

  1. 检查集群状况
kubectl get nodes
  1. 检查Pod状况
kubectl get pods --all-namespaces

总结

经由过程以上步调,你曾经成功搭建了一个高可用K8s集群。在现实利用中,你可能根据须要对集群停止扩大年夜跟优化。祝你在利用K8s的过程中全部顺利!