k8s高可用二进制安装(基于rocky9,三主两从)
原理图

1.环境初始化
a.网络配置
# 网卡配置
# cat /etc/NetworkManager/system-connections/ens160.nmconnection
[ipv4]
method=manual
address1=192.168.66.12/24,192.168.66.200
dns=114.114.114.114;8.8.8.8
# /etc/hosts 解析
192.168.10.11 k8s-master01 m1
192.168.10.12 k8s-master02 m2
192.168.10.13 k8s-master03 m3
192.168.10.14 k8s-node01 n1
192.168.10.15 k8s-node02 n2
b.换系统源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak /etc/yum.repos.d/[Rr]ocky*.repo
dnf makecache
c.防火墙、swap、selinux 关闭
systemctl stop firewalld && systemctl disable firewalld
yum -y install iptables-services
systemctl start iptables && iptables -F && systemctl enable iptables
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
swapoff -a
sed -i 's:/dev/mapper/rl-swap:#/dev/mapper/rl-swap:g' /etc/fstab
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf && sysctl -p
d-f. 时间同步、ulimit、ipvs 配置
# 安装 chrony 时间同步
yum install chrony -y
# 配置 ulimit
ulimit -SHn 65535
# 安装 ipvs
yum install ipvsadm ipset sysstat conntrack libseccomp -y
g.安装 Docker
# 二进制安装 Docker
tar xf docker-*.tgz && cp docker/* /usr/bin/
# 创建 containerd/docker service 文件并启动
systemctl enable --now containerd.service
systemctl enable --now docker.service
2.K8S 与 ETCD 安装
# 下载二进制文件
wget https://dl.k8s.io/v1.29.2/kubernetes-server-linux-amd64.tar.gz
wget https://github.com/etcd-io/etcd/releases/download/v3.5.12/etcd-v3.5.12-linux-amd64.tar.gz
# 解压 K8S 组件
tar -xf kubernetes-server-linux-amd64.tar.gz --strip-components=3 -C /usr/local/bin kubernetes/server/bin/kube{let,ctl,-apiserver,-controller-manager,-scheduler,-proxy}
# 解压 ETCD
tar -xf etcd*.tar.gz && mv etcd-*/etcd /usr/local/bin/ && mv etcd-*/etcdctl /usr/local/bin/
完整配置包括:ETCD 集群配置、kube-apiserver 高可用(keepalived + haproxy)、kube-controller-manager 和 kube-scheduler 主备选举、kubelet/kube-proxy 工作节点配置、Calico 网络插件、证书签发等。