Kubeadm 部署高可用 K8s 集群
kubeadm 安装官方文档 0. 引言 Kubernetes 高可用架构的核心在于保障 API Server 的访问连续性与 etcd 的数据可靠性。通常通过部署多 Master 节点并前置负载均衡来实现,本方案采用 kube-vip 承担此角色。为节省资源,本文将负载均衡与 etcd 集群复用部署于 Master 节点;生产环境请务必将其独立部署,以确保集群稳定性。 本文基于 Ubuntu 24.04 环境编写。若使用其他 Linux 发行版,请根据实际情况自行调整相关命令。 1. 环境架构 1.1 角色划分 主机名 IP 角色 master01 192.168.69.11 master01、Etcd-node01、kube-vip 节点 master02 192.168.69.12 master02、Etcd-node02、kube-vip 节点 master03 192.168.69.13 master03、Etcd-node03、kube-vip 节点 worker01 192.168.69.21 worker01 worker02 192.168.69.22 worker02 worker03 192.168.69.23 worker03 虚拟IP 10.0.0.100 kube-vip 提供 1.2 拓扑图 2. 操作系统初始化 2.1 Linux 基础配置 # 关闭防火墙 ufw disable # 关闭 swap swapoff -a && sysctl -w vm.swappiness=0 sed -ri 's/.*swap.*/#&/' /etc/fstab # 配置主机名和 hosts hostnamectl set-hostname <hostname> cat >> /etc/hosts << EOF 192.168.69.11 master01.wuvikr.top master01 192.168.69.12 master02.wuvikr.top master02 192.168.69.13 master03.wuvikr.top master03 192.168.69.21 worker01.wuvikr.top worker01 192.168.69.22 worker02.wuvikr.top worker02 192.168.69.23 worker03.wuvikr.top worker03 192.168.69.100 kubeapi.wuvikr.top kubeapi EOF # 配置 limit ulimit -SHn 65535 # 持久化 limit 配置(重新登录后生效) cat >> /etc/security/limits.conf << EOF * soft nofile 65536 * hard nofile 131072 * soft nproc 65535 * hard nproc 655350 * soft memlock unlimited * hard memlock unlimited * soft core unlimited * hard core unlimited EOF 2.2 时间同步 # 同步硬件时钟到系统时间(虚拟机环境中可选) hwclock -s # 设置时区(推荐方式,一步完成) timedatectl set-timezone Asia/Shanghai # 确保时间同步服务已启用(Ubuntu 24.04 默认已启用) systemctl enable --now systemd-timesyncd # 查看时间同步状态 timedatectl status Ubuntu 24.04 内置的 systemd-timesyncd 提供轻量级 NTP 客户端功能,支持自动同步、漂移补偿和状态查询。如需更高精度的时间同步(如金融、日志审计场景),建议改用 chrony 替代 systemd-timesyncd。 ...