ubuntu26.04,离线安装k8s,根据kubeadm的deb离线包 + 离线镜像,在线安装k8s-v1.32.13(NLB + 3 master + 2 worker节点)

ubuntu 26.04。

集群规划(5 节点)

master节点01,主机名:k8s-master-01,ip:172.21.64.36

master节点02,主机名:k8s-master-02,ip:172.21.64.37

master节点03,主机名:k8s-master-03,ip:172.21.64.38

工作节点01:主机名:k8s-worker-01,ip:172.21.64.39

工作节点02:主机名:k8s-worker-02,ip:172.21.64.40

 
机器名 内网 ip 角色
k8s-master-01 172.21.64.36 master
k8s-master-02 172.21.64.37 master
k8s-master-03 172.21.64.38 master
k8s-worker-01 172.21.64.39 worker
k8s-worker-02 172.21.64.40 worker

 一,前置准备

1. 下载kubeadm-v1.32.13离线安装包

离线资源清单及下载流程参考:ubunbu 26.04,用bash脚本自动下载kubeadm的deb离线安装包

 离线包目录结构:

/data/k8s/k8s-v1.32.13
├── calico-images-v3.31.6.list
├── calico-images-v3.31.6.tar.gz
├── calico-v3.31.6.yaml
├── ingress-nginx-images-v1.14.5.list
├── ingress-nginx-images-v1.14.5.tar.gz
├── ingress-nginx-v1.14.5.yaml
├── k8s-debs
│   ├── containerd.io_2.3.3-1~ubuntu.26.04~resolute_amd64.deb
│   ├── cri-tools_1.32.0-1.1_amd64.deb
│   ├── kubeadm_1.32.13-1.1_amd64.deb
│   ├── kubectl_1.32.13-1.1_amd64.deb
│   ├── kubelet_1.32.13-1.1_amd64.deb
│   └── kubernetes-cni_1.6.0-1.1_amd64.deb
├── k8s-images-v1.32.13.list
├── k8s-images-v1.32.13.tar.gz
└── k8s-offline.conf

 

2. 清理kubeadm、containerd残留(所有节点执行)

#!/usr/bin/env bash
set -euo pipefail

echo -e "===== 开始执行【全场景全覆盖】K8s 终极节点重置(适配kubeadm/sealos/kubekey/kubesray/kubeasz/二进制/deb混合残留)====="

# ======================
# 1. 通用集群重置(kubeadm体系)
# ======================
if command -v kubeadm >/dev/null; then
    kubeadm reset -f || true
fi

# ======================
# 2. 停止所有可能存在的服务(全覆盖)
# ======================
systemctl stop \
containerd kubelet \
kube-apiserver kube-controller-manager kube-scheduler kube-lb \
sealos kube-proxy etcd \
2>/dev/null || true

systemctl disable \
containerd kubelet \
kube-apiserver kube-controller-manager kube-scheduler kube-lb \
sealos kube-proxy etcd \
2>/dev/null || true

# ======================
# 3. 清理【二进制部署残留】控制面服务(你之前无限复活的元凶)
# ======================
rm -f /etc/systemd/system/kube-apiserver.service
rm -f /etc/systemd/system/kube-controller-manager.service
rm -f /etc/systemd/system/kube-scheduler.service
rm -f /etc/systemd/system/kube-lb.service
rm -f /etc/systemd/system/etcd.service
rm -f /etc/systemd/system/kube-proxy.service

# ======================
# 4. 清理 Sealos / Kubekey / KubeSray / Kubeasz 专属服务 & 目录
# ======================
# sealos 残留
rm -rf /var/lib/sealos /etc/sealos /root/.sealos
rm -f /etc/systemd/system/sealos.service

# kubekey/kubesray 残留
rm -rf /var/lib/kubekey /etc/kubekey /opt/kubekey
rm -rf /var/lib/kubesphere /etc/kubesphere

# kubeasz 残留
rm -rf /etc/kubeasz /var/lib/kubeasz

# ======================
# 5. 彻底purge卸载deb包(containerd.io、kubeadm、cri-tools全部purge,删除包+配置)
# ======================
apt purge -y --allow-change-held-packages \
    containerd.io containerd \
    kubeadm kubectl kubelet \
    cri-tools kubernetes-cni \
2>/dev/null || true

apt autoremove -y || true
apt autoclean

# 解除版本锁定,保证下次重装无冲突
apt-mark unhold \
    kubeadm kubelet kubectl \
    containerd.io cri-tools kubernetes-cni \
2>/dev/null || true

# ======================
# 6. 彻底清理所有路径 systemd 单元(解决二进制+deb双路径冲突)
# ======================
rm -f /lib/systemd/system/kubelet.service
rm -f /etc/systemd/system/kubelet.service
rm -rf /etc/systemd/system/kubelet.service.d

rm -f /lib/systemd/system/containerd.service
rm -f /etc/systemd/system/containerd.service
rm -rf /etc/systemd/system/containerd.service.d
rm -f /usr/local/lib/systemd/system/containerd.service

# ======================
# 7. 彻底清理所有路径 k8s/容器二进制
# 覆盖:apt/deb / 二进制解压 / kubekey / sealos
# 新增 cni、crictl 二进制清理
# ======================
rm -f /usr/bin/containerd /usr/bin/ctr /usr/bin/crictl /usr/bin/kube*
rm -f /usr/local/bin/containerd /usr/local/bin/ctr /usr/local/bin/crictl /usr/local/bin/kube*
rm -f /opt/kube/bin/* 2>/dev/null || true

# 清理二进制解压的cni插件二进制
rm -rf /opt/cni/bin/* 2>/dev/null || true

# ======================
# 8. 重载 systemd、清除失效状态
# ======================
systemctl daemon-reload
systemctl reset-failed

# ======================
# 9. 绝杀所有残留进程(杜绝复活、端口占用)
# ======================
pkill -9 -f "kube-apiserver|kube-scheduler|kube-controller-manager|kube-lb|kubelet|containerd|sealos|etcd|crictl" 2>/dev/null || true

# ======================
# 10. 清空所有体系数据目录
# ======================

# 先卸载 Calico cgroup 挂载点(否则 rm 报 Operation not permitted)
umount -R /var/run/calico/cgroup 2>/dev/null || true
umount -R /run/calico/cgroup 2>/dev/null || true

# /var/run 和 /run 是 tmpfs,重启自动清空,无需 rm
rm -rf \
/var/lib/containerd \
/var/lib/cri \
/etc/cni \
/opt/cni \
/root/.kube \
/etc/containerd \
/etc/kubernetes \
/var/lib/kubelet \
/var/lib/etcd \
/var/lib/calico \
/var/lib/sealos \
/var/lib/nerdctl \
/var/lib/kubekey \
/var/lib/kubesphere \
/etc/kubeasz \
/etc/cni/net.d/*

# ======================
# 11. 重置网络栈(解决多工具残留网卡、iptables错乱)
# ======================
iptables -F && iptables -t nat -F && iptables -X && ipvsadm -C
ip link del tunl0 2>/dev/null || true
ip link del cni0 2>/dev/null || true
ip link del flannel.1 2>/dev/null || true
ip link del vxlan.calico 2>/dev/null || true

echo -e "✅ 【k8s残留】清理完成!已purge卸载 containerd.io、cri-tools、kubernetes-cni"

 

3. 安装nerdctl

nerdctl下载地址:https://github.com/containerd/nerdctl/releases/download/v2.3.4/nerdctl-2.3.4-linux-amd64.tar.gz

部署

curl https://github.com/containerd/nerdctl/releases/download/v2.3.4/nerdctl-2.3.4-linux-amd64.tar.gz
tar -zxvf nerdctl-2.3.4-linux-amd64.tar.gz
mv nerdctl /usr/local/bin/
chmod +x /usr/local/bin/nerdctl

# 同样配置默认命名空间
mkdir -p /etc/nerdctl
cat > /etc/nerdctl/nerdctl.toml <<EOF
namespace = "k8s.io"
address = "/run/containerd/containerd.sock"
cgroup_manager = "systemd"
EOF

 

4. 申请一个阿里云的NLB

nlb用于master的controllerPlaneEndpoint。

注意事项(重要!重要!重要!)

两个操作:

1)【永久】关闭nlb的【客户端地址保存】

image

 

2)【临时】关闭nlb的【健康检查】,等master初始化完成,并在所有master加入集成后,再开启【健康检查】

image

 如果不做这两步,执行【kubeadm init】命令的时候NLB要做健康检查,此时apiserver的6443端口还未启动,会卡在健康检查这4分钟,导致初始化失败。

 

3. 后端服务器先只添加初始化的master服务器

原因,使用kubectl命令的时候,流量轮流打到其它还未join进来的控制面板节点,会导致执行命令卡住。

 

二. 前置系统环境配置(所有节点执行)

1. 修改主机名

# master-01节点执行
hostnamectl set-hostname k8s-master-01
# master-02节点执行
hostnamectl set-hostname k8s-master-02
# master-03节点执行
hostnamectl set-hostname k8s-master-03
# worker-01节点执行
hostnamectl set-hostname k8s-worker-01
# worker-02节点执行
hostnamectl set-hostname k8s-worker-02

 

2. 配置 hosts 解析(所有节点统一写入 /etc/hosts)

cat >> /etc/hosts << EOF
172.21.64.36   k8s-master-01
172.21.64.37   k8s-master-02
172.21.64.38   k8s-master-03
172.21.64.39   k8s-worker-01
172.21.64.40   k8s-worker-02
EOF

 

3. 系统内核 & 资源优化

# 关闭永久swap
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab

#关闭 ufw防火墙
systemctl stop ufw
systemctl disable ufw

# 内核转发、iptables桥接
cat >> /etc/sysctl.conf <<EOF
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1

# 允许绑定本机不存在的VIP(HA/kube-vip核心)
net.ipv4.ip_nonlocal_bind = 1

# 反向路由过滤 全部宽松模式
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.eth0.rp_filter = 2  #eth0替换为真实的网卡名称(非必填)

# ARP应答策略:仅匹配网卡IP才回复
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.eth0.arp_ignore = 1  #eth0替换为真实的网卡名称(非必填)

# ARP宣告策略:严格匹配网卡网段
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.eth0.arp_announce = 2  #eth0替换为真实的网卡名称(非必填)

EOF
sysctl -p

# 加载overlay/iptables内核模块
modprobe overlay
modprobe br_netfilter


#系统开机自动加载里面写的内核模块。
echo "overlay" >> /etc/modules-load.d/k8s.conf
echo "br_netfilter" >> /etc/modules-load.d/k8s.conf
# 开启root密码登录
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
sed -i 's/#PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
sed -i 's/#PubkeyAuthentication no/PubkeyAuthentication yes/' /etc/ssh/sshd_config
systemctl restart ssh systemctl enable ssh

#时间同步
apt install chrony -y
systemctl enable --now chronyd
timedatectl set-timezone Asia/Shanghai

 

4 安装所有软件包

apt update && apt upgrade -y
apt install -y curl wget openssl ca-certificates gnupg lsb-release openssh-server sshpass tar unzip ipset ipvsadm conntrack socat lvm2

 

5. Master 节点单独执行 SSH 免密分发

# master节点生成密钥
ssh-keygen -t ed25519 -N "" -f /root/.ssh/id_ed25519
# 分发公钥
sshpass -p "root密码" ssh-copy-id root@172.21.64.36
sshpass -p "root密码" ssh-copy-id root@172.21.64.37
sshpass -p "root密码" ssh-copy-id root@172.21.64.38
sshpass -p "root密码" ssh-copy-id root@172.21.64.39
sshpass -p "root密码" ssh-copy-id root@172.21.64.40

# 验证免密连通
ssh root@172.21.64.36 hostname
ssh root@172.21.64.37 hostname
ssh root@172.21.64.38 hostname
ssh root@172.21.64.39 hostname
ssh root@172.21.64.40 hostname

 

6. 批量校验所有节点 SSH 连通性(最关键前置检查)

nodes=(172.21.64.36 172.21.64.37 172.21.64.38 172.21.64.39 172.21.64.40)
for ip in ${nodes[@]};
do
  echo "=== 测试 $ip SSH ==="
  sshpass -p "你的root密码" ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no root@$ip "hostname; echo 连接正常"
done

 

三,部署k8s

1. 分发离线包到所有节点

#!/bin/bash
set -euo pipefail

# 节点列表
nodes=(
172.21.64.36
172.21.64.37
172.21.64.38
172.21.64.39
172.21.64.40
)
src_dir="/data/k8s/k8s-v1.32.13"
dst_dir="/data/k8s/k8s-v1.32.13"

for ip in "${nodes[@]}"; do
    echo "====================================="
    echo "处理节点 $ip"
    echo "====================================="
    # 远程创建目录
    ssh root@"$ip" "mkdir -p ${dst_dir}"
    # 同步全部离线资源
    rsync -avz --progress ${src_dir}/ root@${ip}:${dst_dir}/
done

echo "✅ 所有节点离线资源分发完成"

 

2. 所有节点执行,安装基础组件(containerd / kubeadm / kubelet / kubectl),加载镜像

进到离线资源目录

# 改成你自己的目录
cd /data/k8s/k8s-v1.32.13

 

执行安装脚本:

#!/bin/bash
set -euo pipefail
(
# 改成你自己安装的pause镜像的版本
container_pause_version="3.10"
work_dir=$(pwd)
deb_dir="${work_dir}/k8s-debs"

# deb包清单
pkg_list=(
"${deb_dir}/containerd.io_*.deb"
"${deb_dir}/cri-tools_*.deb"
"${deb_dir}/kubernetes-cni_*.deb"
"${deb_dir}/kubelet_*.deb"
"${deb_dir}/kubeadm_*.deb"
"${deb_dir}/kubectl_*.deb"
)

# 前置校验:检查每个deb包是否存在
echo "===== 校验deb安装包 ====="
for pattern in "${pkg_list[@]}"; do
  set +o pipefail
  file=$(ls ${pattern} 2>/dev/null | head -1)
  set -o pipefail
  if [ -z "${file}" ]; then
    echo "ERROR: 未找到匹配文件 ${pattern}"
    exit 1
  fi
done

echo "===== 批量安装 containerd、cri-tools、kubernetes-cni、kubelet、kubeadm、kubectl ====="
dpkg -i ${pkg_list[@]} || true
apt -f install -y

# --------------------------
# 清理历史二进制部署残留(解决/usr/local冲突,新增)
# --------------------------
rm -f /usr/local/lib/systemd/system/containerd.service
rm -f /usr/local/bin/containerd
systemctl daemon-reload
systemctl reset-failed

# --------------------------
# 配置 containerd
# --------------------------
rm -rf /etc/containerd
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml

sed -i \
-e "s|registry.k8s.io/pause:[0-9.]*|registry.k8s.io/pause:${container_pause_version}|g" \
-e 's/SystemdCgroup \= false/SystemdCgroup \= true/g' \
/etc/containerd/config.toml

systemctl daemon-reload
systemctl restart containerd
systemctl enable containerd
echo "containerd 安装与配置完成"

# --------------------------
# 导入所有离线镜像(镜像在当前目录,移除work_dir前缀)
# --------------------------
image_tar_list=(
  "k8s-images-"*.tar.gz
  "calico-images-"*.tar.gz
  "ingress-nginx-images-"*.tar.gz
)

echo "===== 批量导入离线镜像 ====="
for pattern in "${image_tar_list[@]}"; do
  for tarfile in ${pattern}; do
    if [ -f "${tarfile}" ]; then
      echo "加载镜像文件: ${tarfile}"
      nerdctl -n k8s.io load -i "${tarfile}"
    fi
  done
done

# 锁定版本防止apt自动更新
apt-mark hold kubeadm kubelet kubectl containerd.io

# --------------------------
# 组件有效性校验
# --------------------------
echo "===== 校验组件安装状态 ====="
command -v kubeadm &> /dev/null || { echo "ERROR: kubeadm 未安装成功!"; exit 1; }
command -v kubelet &> /dev/null || { echo "ERROR: kubelet 未安装成功!"; exit 1; }
command -v kubectl &> /dev/null || { echo "ERROR: kubectl 未安装成功!"; exit 1; }

# --------------------------
# 输出信息
# --------------------------
echo "====================================="
echo "节点基础组件安装完成!"
echo "containerd: $(containerd --version)"
echo "kubeadm: $(kubeadm version -o short)"
echo "Pause镜像版本: ${container_pause_version}"
echo "====================================="
)

 

3. 仅在第一个master节点初始化

使用阿里云NLB时的踩坑记:

1. 把NLB的【客户端地址保持】永久关闭。因为kube-apiserver 是标准无状态服务,天生不需要粘性会话,
2. 把NLB的【健康检查】临时关闭,等全部master节点安装好以后才打开。如果不做这一步,执行【kubeadm init】命令的时候NLB要做健康检查,此时apiserver的6443端口还未启动,会卡在健康检查这4分钟,导致初始化失败。
3. NLB后端服务器先只添加初始化的master服务器。原因:使用kubectl命令的时候,流量轮流打到其它还未join进来的控制面板节点,会导致执行命令卡住。
4. 等所有master节点都加入成功后,才添加其它后端服务器,打开【健康检查】。

 

1) 初始化master

#!/bin/bash
set -euo pipefail
(
CONF_FILE="./k8s-offline.conf"

# 加载外部配置
if [ ! -f "${CONF_FILE}" ];then
    echo "ERROR: 缺失配置文件 ${CONF_FILE}"
    exit 1
fi
source "${CONF_FILE}"

# ======================
# 本地变量副本:外部配置变量
# ======================
local_k8s_ver="${k8s_ver}"
local_calico_ver="${calico_ver}"

# ======================
# 本地常量变量(脚本内固定配置)
# ======================
local_work_dir=$(pwd)
local_apiserver_vip="nlb-8uzzik99a4ylb0f1fq.cn-shanghai.nlb.aliyuncsslb.com"
local_control_plane_endpoint="${local_apiserver_vip}:6443"
local_apiserver_advertise_addr="172.21.64.36"
local_pod_cidr="192.168.0.0/16"
local_service_cidr="10.96.0.0/12"

# 简易变量校验函数
check_var() {
    local name="$1"
    if [[ -z "${!name:-}" ]]; then
        echo "ERROR: 变量【${name}】不能为空,请检查 ${CONF_FILE}"
        exit 1
    fi
}
check_var local_k8s_ver
check_var local_calico_ver

# kubeadm init HA命令
kubeadm init \
--control-plane-endpoint "${local_control_plane_endpoint}" \
--kubernetes-version "${local_k8s_ver}" \
--image-repository registry.k8s.io \
--pod-network-cidr="${local_pod_cidr}" \
--service-cidr="${local_service_cidr}" \
--apiserver-advertise-address="${local_apiserver_advertise_addr}" \
--upload-certs

# 拷贝kubectl配置
mkdir -p /root/.kube
cp -i /etc/kubernetes/admin.conf /root/.kube/config
chown $(id -u):$(id -u) /root/.kube/config

echo ""
echo "✅ kubeadm init 初始化完成!")

 

2) 安装calico(必须)

#!/bin/bash
set -euo pipefail
(
CONF_FILE="./k8s-offline.conf"

# 加载外部配置
if [ ! -f "${CONF_FILE}" ];then
    echo "ERROR: 缺失配置文件 ${CONF_FILE}"
    exit 1
fi
source "${CONF_FILE}"

local_work_dir=$(pwd)
local_calico_ver="${calico_ver}"

check_var() {
    local name="$1"
    if [[ -z "${!name:-}" ]]; then
        echo "ERROR: 变量【${name}】不能为空,请检查 ${CONF_FILE}"
        exit 1
    fi
}
check_var local_calico_ver

# 直接匹配当前目录 calico-版本.yaml,不再拼接路径变量
calico_yaml="calico-${local_calico_ver}.yaml"

# 检查文件存在
if [ ! -f "${calico_yaml}" ]; then
    echo "ERROR: Calico yaml 文件不存在:${calico_yaml}"
    exit 1
fi

echo "===== 部署Calico网络插件 ====="
echo "使用文件:${calico_yaml}"
kubectl apply -f "${calico_yaml}"

echo ""
echo "✅ Calico 部署命令执行完成!"
echo "等待片刻,执行 kubectl get nodes 查看节点是否变为Ready"
)

 

3)安装ingress-nginx(可选)

#!/bin/bash
set -euo pipefail
(
CONF_FILE="./k8s-offline.conf"

# 加载外部配置
if [ ! -f "${CONF_FILE}" ];then
    echo "ERROR: 缺失配置文件 ${CONF_FILE}"
    exit 1
fi
source "${CONF_FILE}"

# ======================
# 本地变量副本:外部配置变量
# ======================
local_ingress_ver="${ingress_ver}"

# ======================
# 本地常量变量
# ======================
local_work_dir=$(pwd)

# 变量校验
check_var() {
    local name="$1"
    if [[ -z "${!name:-}" ]]; then
        echo "ERROR: 变量【${name}】不能为空,请检查 ${CONF_FILE}"
        exit 1
    fi
}
check_var local_ingress_ver

# 集群连通性前置校验
if ! kubectl get nodes &>/dev/null;then
    echo "ERROR: 无法连接Kubernetes集群,请先完成Master初始化!"
    exit 1
fi

# 直接当前目录,移除路径前缀
ingress_yaml="ingress-nginx-${local_ingress_ver}.yaml"
if [ ! -f "${ingress_yaml}" ]; then
    echo "ERROR: ingress-nginx yaml 文件不存在:${ingress_yaml}"
    exit 1
fi

echo "===== 开始部署Ingress-Nginx ====="
echo "使用文件:${ingress_yaml}"

echo "等待集群节点就绪..."
kubectl wait --for=condition=ready node --all --timeout=300s

kubectl apply -f "${ingress_yaml}"

# 删除准入webhook
kubectl delete ValidatingWebhookConfiguration ingress-nginx-admission --ignore-not-found

echo "✅ Ingress-Nginx 部署完成"
)

 

4.加入其它节点

生成加入master节点的命令

out=$(kubeadm init phase upload-certs --upload-certs 2>/dev/null)
cert_key=$(echo "$out" | sed -n '/Using certificate key:/{n;p;}')
echo "【Master控制平面节点加入命令】"
kubeadm token create --print-join-command --ttl 0 --certificate-key "${cert_key}"

 

输出加入master的命令(在其它master节点执行):

kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
  --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxx \
  --control-plane --certificate-key xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

master节点加入完成后,执行授权

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

 

生成加入工作节点的命令

echo "【Worker节点加入命令】"
kubeadm token create --print-join-command --ttl 0

输出示例(在工作节点执行):

kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
  --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxx

 

5.校验集群

kubectl get nodes -o wide
kubectl get pods -A -o wide

输出:

root@k8s-master-02:/data/k8s/k8s-v1.32.13# kubectl get nodes -o wide
kubectl get pods -A -o wide
NAME            STATUS   ROLES           AGE     VERSION    INTERNAL-IP    EXTERNAL-IP   OS-IMAGE           KERNEL-VERSION     CONTAINER-RUNTIME
k8s-master-01   Ready    control-plane   176m    v1.32.13   172.21.64.36   <none>        Ubuntu 26.04 LTS   7.0.0-28-generic   containerd://2.3.3
k8s-master-02   Ready    control-plane   46m     v1.32.13   172.21.64.37   <none>        Ubuntu 26.04 LTS   7.0.0-28-generic   containerd://2.3.3
k8s-master-03   Ready    control-plane   32m     v1.32.13   172.21.64.38   <none>        Ubuntu 26.04 LTS   7.0.0-28-generic   containerd://2.3.3
k8s-worker-01   Ready    <none>          2m32s   v1.32.13   172.21.64.39   <none>        Ubuntu 26.04 LTS   7.0.0-28-generic   containerd://2.3.3
k8s-worker-02   Ready    <none>          2m11s   v1.32.13   172.21.64.40   <none>        Ubuntu 26.04 LTS   7.0.0-28-generic   containerd://2.3.3
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE     IP                NODE            NOMINATED NODE   READINESS GATES
kube-system   calico-kube-controllers-678b6c5f64-8lt4p   1/1     Running   0          169m    192.168.151.129   k8s-master-01   <none>           <none>
kube-system   calico-node-74l7c                          1/1     Running   0          2m11s   172.21.64.40      k8s-worker-02   <none>           <none>
kube-system   calico-node-ccskt                          1/1     Running   0          2m31s   172.21.64.39      k8s-worker-01   <none>           <none>
kube-system   calico-node-mvqx6                          1/1     Running   0          46m     172.21.64.37      k8s-master-02   <none>           <none>
kube-system   calico-node-slmvj                          1/1     Running   0          169m    172.21.64.36      k8s-master-01   <none>           <none>
kube-system   calico-node-xv5qh                          1/1     Running   0          32m     172.21.64.38      k8s-master-03   <none>           <none>
kube-system   coredns-668d6bf9bc-tzzpn                   1/1     Running   0          176m    192.168.151.131   k8s-master-01   <none>           <none>
kube-system   coredns-668d6bf9bc-v96z6                   1/1     Running   0          176m    192.168.151.130   k8s-master-01   <none>           <none>
kube-system   etcd-k8s-master-01                         1/1     Running   2          176m    172.21.64.36      k8s-master-01   <none>           <none>
kube-system   etcd-k8s-master-02                         1/1     Running   0          46m     172.21.64.37      k8s-master-02   <none>           <none>
kube-system   etcd-k8s-master-03                         1/1     Running   0          32m     172.21.64.38      k8s-master-03   <none>           <none>
kube-system   kube-apiserver-k8s-master-01               1/1     Running   2          176m    172.21.64.36      k8s-master-01   <none>           <none>
kube-system   kube-apiserver-k8s-master-02               1/1     Running   0          46m     172.21.64.37      k8s-master-02   <none>           <none>
kube-system   kube-apiserver-k8s-master-03               1/1     Running   0          32m     172.21.64.38      k8s-master-03   <none>           <none>
kube-system   kube-controller-manager-k8s-master-01      1/1     Running   2          176m    172.21.64.36      k8s-master-01   <none>           <none>
kube-system   kube-controller-manager-k8s-master-02      1/1     Running   0          46m     172.21.64.37      k8s-master-02   <none>           <none>
kube-system   kube-controller-manager-k8s-master-03      1/1     Running   0          32m     172.21.64.38      k8s-master-03   <none>           <none>
kube-system   kube-proxy-2548h                           1/1     Running   0          2m31s   172.21.64.39      k8s-worker-01   <none>           <none>
kube-system   kube-proxy-2v54k                           1/1     Running   0          46m     172.21.64.37      k8s-master-02   <none>           <none>
kube-system   kube-proxy-76wg9                           1/1     Running   0          32m     172.21.64.38      k8s-master-03   <none>           <none>
kube-system   kube-proxy-llg4j                           1/1     Running   0          2m11s   172.21.64.40      k8s-worker-02   <none>           <none>
kube-system   kube-proxy-sppdf                           1/1     Running   0          176m    172.21.64.36      k8s-master-01   <none>           <none>
kube-system   kube-scheduler-k8s-master-01               1/1     Running   2          176m    172.21.64.36      k8s-master-01   <none>           <none>
kube-system   kube-scheduler-k8s-master-02               1/1     Running   0          46m     172.21.64.37      k8s-master-02   <none>           <none>
kube-system   kube-scheduler-k8s-master-03               1/1     Running   0          32m     172.21.64.38      k8s-master-03   <none>           <none>

 

posted @ 2026-08-18 21:27  民工黑猫  阅读(6)  评论(0)    收藏  举报