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的【客户端地址保存】

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

如果不做这两步,执行【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>

浙公网安备 33010602011771号