Administrator
Published on 2025-07-03 / 36 Visits
0

最新版K8S环境安装

环境介绍

系统版本 (mini版本,比脸还干净的系统)

No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 24.04.2 LTS
Release:	24.04
Codename:	noble

服务器ID列表

  1. master 23.13.6.161

  2. worker1 23.13.6.162

  3. worker2 23.13.6.163

✅ 一、前提条件

所有节点都需要执行以下操作:

1. 修改主机名

# master 节点 
sudo hostnamectl set-hostname master 
# slave1 节点 
sudo hostnamectl set-hostname slave1 
# slave2 节点 
sudo hostnamectl set-hostname slave2

2. 修改 hosts 文件

每台机器 /etc/hosts 添加如下内容:

23.13.6.161 master
23.13.6.162 slave1
23.13.6.163 slave2

3. 关闭 swap

sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab

4. 关闭防火墙和 SELinux

sudo ufw disable

5. 加载内核模块 & 系统参数

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.ipv4.ip_forward                 = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sudo sysctl --system

✅ 二、安装 containerd(所有节点)

1. 安装依赖和 containerd

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common lsb-release

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 这里可能会下载失败,如果下载失败了 执行一下“rm -f /etc/apt/keyrings/docker.gpg”在重新下载,直到成功为止

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update
sudo apt install -y containerd.io

2. 配置 containerd 默认配置

sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml

编辑 /etc/containerd/config.toml

  • 搜索 SystemdCgroup,将其改为 true

SystemdCgroup = true
  • 以下为快速修改命令

sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml

3. 启动 containerd

sudo systemctl restart containerd
sudo systemctl enable containerd

✅ 三、安装 kubeadm、kubelet、kubectl(所有节点)

1. 添加 Kubernetes 源

sudo curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list

sudo apt update

2. 安装工具

sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

✅ 四、初始化 Master 节点

只在 master 节点执行:

1. 初始化集群

sudo kubeadm init 
  --apiserver-advertise-address=23.13.6.161 \
  --image-repository=registry.aliyuncs.com/google_containers \
  --pod-network-cidr=10.244.0.0/16

成功后会输出类似如下命令,供 worker 节点加入用:

kubeadm join 23.13.6.161:6443 --token d3zle4.i36xroja3xrvgwnz \
	--discovery-token-ca-cert-hash sha256:a7b01bc2c99ea018e5fc3329d03fe6560175115c4c88a5359c9333896f7106da

2. 配置 kubectl 使用权限

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

✅ 五、安装 Pod 网络插件(master 节点)

这里以 Flannel 为例:

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

✅ 六、Worker 节点加入集群

在 slave1 和 slave2 上执行 kubeadm join 命令,例如:

kubeadm join 23.13.6.161:6443 --token d3zle4.i36xroja3xrvgwnz \
	--discovery-token-ca-cert-hash sha256:a7b01bc2c99ea018e5fc3329d03fe6560175115c4c88a5359c9333896f7106da

✅ 七、验证集群状态(master 节点)

kubectl get nodes

输出应该为:

NAME     STATUS   ROLES           AGE     VERSION
master   Ready    control-plane   5m      v1.30.0
slave1   Ready    <none>          2m      v1.30.0
slave2   Ready    <none>          2m      v1.30.0

✅ 八、可能会用到的命令

转换镜像名称

ctr -n k8s.io images tag \
  registry.aliyuncs.com/google_containers/pause:3.9 \
  registry.k8s.io/pause:3.9