跳到主要内容

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

原理图

image-20250509234906961

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 网络插件、证书签发等。