文章目录
- 一、环境准备
- 1.1 三台服务器
- 1.2 基础配置(三台机通用)
- 1.3 关闭 Swap(必须)
- 1.4 关闭防火墙(可选)
- 1.5 加载必要模块 & 配置内核参数
- 二、安装容器运行时(containerd 推荐)
- 三、安装 Kubernetes 组件
- 3.1 添加 apt 源
- 3.2 安装 Kubernetes v1.30
- 四、初始化 Master 节点(只在 master 上操作)
- 配置 kubectl 使用
- 五、安装网络插件(使用 Flannel 示例)
- 六、加入 Worker 节点(在 worker1、worker2 上操作)
- 七、验证集群状态(master 上执行)
Ubuntu 22.04 上部署 Kubernetes 1.30 集群的完整步骤(1 个 Master + 2 个 Worker):
一、环境准备
1.1 三台服务器
主机名 | IP地址 | 角色 |
---|---|---|
master | 192.168.1.10 | 控制节点 |
worker1 | 192.168.1.11 | 工作节点 |
worker2 | 192.168.1.12 | 工作节点 |
1.2 基础配置(三台机通用)
sudo hostnamectl set-hostname <主机名> # 分别设置为 master、worker1、worker2
# 修改 hosts 文件
sudo vim /etc/hosts
# 添加以下内容
192.168.1.10 master
192.168.1.11 worker1
192.168.1.12 worker2
1.3 关闭 Swap(必须)
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
1.4 关闭防火墙(可选)
sudo systemctl disable --now ufw
1.5 加载必要模块 & 配置内核参数
# 加载模块
sudo modprobe overlay
sudo modprobe br_netfilter
# 配置内核参数
cat <<EOF | sudo tee /etc/sysctl.d/kubernetes.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
二、安装容器运行时(containerd 推荐)
# 安装依赖
sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
# 安装 containerd
sudo apt install -y containerd
# 配置默认文件
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
# 修改containerd的镜像源---让他和kubeadm保持一样的源
sudo sed -i 's|sandbox_image = .*|sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"|' /etc/containerd/config.toml
# 修改 Cgroup Driver 为 systemd
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
# 重启服务
sudo systemctl restart containerd
sudo systemctl enable containerd
三、安装 Kubernetes 组件
3.1 添加 apt 源
sudo curl -fsSLo /etc/apt/keyrings/kubernetes-apt-key.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-key.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" \
| sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update
国内建议换成阿里
旧源:deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
最高支持到1.28
apt-cache madison kubeadm
# 添加阿里云镜像源
echo "deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main" | \
sudo tee /etc/apt/sources.list.d/kubernetes.list
# 添加 GPG key
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | \
sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/kubernetes-aliyun.gpg
# 更新源
sudo apt update
或者
新源:https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/
目前支持到1.3X
sudo rm -f /etc/apt/sources.list.d/kubernetes.list
sudo rm -f /etc/apt/trusted.gpg.d/kubernetes-aliyun.gpg
# 创建 keyrings 目录,用于存放源的签名文件(Ubuntu 22.04 推荐做法)
sudo mkdir -p /etc/apt/keyrings
# 下载阿里云 Kubernetes 1.30 的 GPG 签名文件,并转为 APT 可识别的格式(.gpg)
curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/Release.key | \
gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
# 添加 Kubernetes 1.30 的 APT 软件源到系统源列表
# signed-by= 指定只信任这个源对应的 GPG 密钥,避免信任全局
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] \
https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/ /" | \
sudo tee /etc/apt/sources.list.d/kubernetes.list
apt update
3.2 安装 Kubernetes v1.30
# 安装 kubelet、kubeadm、kubectl 的 1.30.1 版本
sudo apt install -y kubelet=1.30.1-1.1 kubeadm=1.30.1-1.1 kubectl=1.30.1-1.1
# 锁定版本,防止未来 apt upgrade 时被升级
sudo apt-mark hold kubelet kubeadm kubectl
四、初始化 Master 节点(只在 master 上操作)
(可选)
提前拉取 kubeadm 所需镜像(避免初始化失败)
sudo kubeadm config images pull \
--image-repository=registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.30.1
# 使用默认的 containerd 和 flannel 的 pod 网段 10.244.0.0/16
# 初始化 kubeadm(将 192.168.121.134 替换为你 master 节点的实际 IP)
sudo kubeadm init \
--apiserver-advertise-address=192.168.121.134 \
--image-repository=registry.aliyuncs.com/google_containers \
--kubernetes-version=1.30.1 \
--pod-network-cidr=10.244.0.0/16
初始化成功后,会输出一条 kubeadm join … 命令,把它复制保存,用于让 worker1 和 worker2 节点加入集群。
kubeadm join 192.168.121.134:6443 --token rlb4zl.ab1ghdphpyqx3jt4 \
--discovery-token-ca-cert-hash sha256:6afb88e798521ecb63191de8aa93cb7d573f88cae41cea50086942a2626a5a12
配置 kubectl 使用
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
五、安装网络插件(使用 Flannel 示例)
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
等几秒后可以查看是否网络组件准备就绪
kubectl get pods -n kube-system
六、加入 Worker 节点(在 worker1、worker2 上操作)
使用 master 初始化时输出的命令,如:
sudo kubeadm join 192.168.1.10:6443 --token <token> \
--discovery-token-ca-cert-hash sha256:<hash>
七、验证集群状态(master 上执行)
kubectl get nodes
应该能看到三台机器都处于 Ready
状态。