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

作者:用户LRLA 更新时间:2025-05-29 06:49:19 阅读时间: 2分钟

引言

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的过程中一切顺利!

大家都在看
发布时间:2024-11-01 18:03
最近,听说了许多关于囊肿类疾病的产生。我相信很多朋友们对于囊种类疾病的认知还是很低,我想通过今天这个机会,好好的跟大家分析一下,关于如何治好卵巢囊肿这一问题。
发布时间:2024-12-11 05:35
西王站:中山路与长兴街交叉口东侧时光街站:中山西路时光街交叉口长城桥站:中山西路与西二环交叉口和平医院站:中山西路与友谊大街交叉口(1号线、5号线换乘站)烈士陵园站:中山西路与规划泰华街交叉口东侧新百广场站(原称“中山广场”站):中山西路与。
发布时间:2024-11-19 06:39
忆江南三首白居易 〔唐代〕江南好,风景旧曾谙;日出江花红胜火,春来江水绿如蓝。能不忆江南?江南忆,最忆是杭州;山寺月中寻桂子,郡亭枕上看潮头。何日更重游!江南忆,其次忆吴宫;吴酒一杯春竹叶,吴娃双舞醉芙蓉。早晚复相逢!诗人早年因避乱来到江南。
发布时间:2024-11-11 12:01
《封神演义》中,姜子牙的妻子马小红受炮烙之刑而死。马小红为大局着想,也为了保护自己的丈夫姜子牙,帮助他离开朝歌,她选择牺牲自己。当商王事后得知真相后,在申公豹的怂恿下对马小红使用了炮烙之刑。。
发布时间:2024-12-14 06:33
从3号口出来右转沿着沪松公路走大约400米到九新公路,左转走1公里左右就到九亭大街了。公交的话可以坐706路或者松江43路(外环)。
发布时间:2024-12-10 12:29
公交线路:地铁2号线 → 地铁4号线大兴线 → 501路,全程约21.9公里,1小时20分钟。1、从北京站乘内坐地铁2号线,经过容4站, 到达宣武门站2、乘坐地铁4号线大兴线,经过5站, 到达角门西站3、步行约340米,到达嘉园二里东门站4。
发布时间:2024-10-30 00:22
斯皮仁诺胶囊,对于这个药物名称来说,相信一部分人会有一些熟悉的情况,这是一种主要以治疗真菌感染为主的药物,可以治疗妇科阴道念珠菌感染,各种由于真菌引起的皮肤。
发布时间:2024-11-11 12:01
一本。四川师范大学是一本高校。学校是四川省属重点大学、国家首批“中西部高校基础能力建设工程”实施高校及全国深化创新创业教育改革示范校,是四川省举办本科师范教育最早、师范类院校中办学历史最为悠久的大学。学校位于四川省省会——成都市,现有狮。
发布时间:2024-12-10 09:41
公交线路:598a路,全程约55.4公里1、从临安市政府步行约1.2公里,到达临安东站2、乘坐598a路,经过3站, 到达火车东站东站3、步行约1000米,到达杭州东站。
发布时间:2024-12-13 22:55
G1339次列车属 成都局 由重庆客运段值乘。