ubuntu 26.04,使用kubespray-v2.31.0在线安装5节点高可用k8s-v1.35.4集群
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 |
一,全节点卸载清理旧集群 containerd/k8s 所有残留
#!/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"
二、前置环境配置,所有节点统一前置初始化脚本(所有机器执行)
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
三,选一台master节点安装ansible管控机(推荐master-01)
1. 目录规划
/data/kubespray/ ├── kubespray-src # kubespray源码目录,git切换v2.31 / v2.32 / v2.33 ├── venv/ │ ├── venv-ks-v2.31 # v2.31专属虚拟环境 │ ├── venv-ks-v2.32 # v2.32专属虚拟环境 │ └── venv-ks-v2.33 # 未来新版本 ├── inv/ │ ├── dev-k8s # 开发集群 inventory │ ├── test-k8s # 测试集群 inventory │ └── prod-k8s # 生产集群 inventory └── logs/ # 执行日志统一存放
2. 管控机安装依赖
#系统自带python3-v3.14,不需要安装python3 apt update && apt install -y python3-pip python3-venv git mkdir -p /data/kubespray cd /data/kubespray git clone https://github.com/kubernetes-sigs/kubespray.git kubespray-src cd kubespray-src #查看当前分枝(默认是master分枝) git branch # 建议切换到最新的固定分枝,不要用master分枝 git fetch --tags git checkout v2.31.0
ubuntu26 / 24 / 22 / 20 / 18默认已经安装了python3,所以其它节点不需要额外安装python3了。
查看tag命令,列出当前有哪些tag:
git tag
3. 使用虚拟环境安装ansible(python环境隔离)
# 1. 创建虚拟环境目录 mkdir -p /data/kubespray/venv/venv-ks-v2.31 # 2. 创建虚拟环境 python3 -m venv /data/kubespray/venv/venv-ks-v2.31 # 3. 激活虚拟环境 source /data/kubespray/venv/venv-ks-v2.31/bin/activate # 4. 进入源码目录安装依赖 cd /data/kubespray/kubespray-src pip install -r requirements.txt # 校验ansible版本 ansible --version
4. 后续执行 ansible-playbook 前必须先激活虚拟环境
source /data/kubespray/venv/venv-ks-v2.31/bin/activate
退出虚拟环境
deactivate
四. kubespray集群配置文件修改(在ansible管控机)
1. 查看支持哪些k8s版本
cat roles/kubespray_defaults/vars/main/checksums.yml
找到kubeadm_checksums:节点,就是支持的k8s版本
kubeadm_checksums: arm64: 1.36.3: sha256:276cfbdc43b10fef663288cc1ed76abf77b1b7f700e9f1c053cb5dc3115484de 1.36.2: sha256:c638f0b4d9b216df8d5bcf41473b81e59143aa0a690392c224e97e6ec91ed3e9 1.36.1: sha256:82fa5119d6687f721cd80cb278bac08f54cc5d3fd0320c66cef9394d42e153a9 1.36.0: sha256:43d4ca3a9f8f49c2c2f6db2c056de1a00fa110a3dd5aa68a74fbc52e42d96c01 1.35.7: sha256:b8c3a1145a9875f046e9b66d5cd5810431e92ae1d5abca82f0151694cd257928 1.35.6: sha256:b6acbcd4ab8a18759191a2d6373d84a80f3cb47ad5460603df5fe8887b139716 1.35.5: sha256:24658203703a8bfa2813571881c1ba08f8cc4aff714a5b43bbf417af7d3cf229 1.35.4: sha256:e8f6b5bee3e2c8b5965f4ae65c2ae04e3f9f426d2458a1e2f159e824d419d92c 1.35.3: sha256:647a9821c37a27bcaf6d679a191732b686c01cecd0219d5e579129f0cfd62cef 1.35.2: sha256:b540b734e9eaeb134e2cb7c7803dc62160589ac3b2615d717ce41acb22bbec98 1.35.1: sha256:80097a3c4ef824f4edfe131d2bd429772c4be3a460c42a44f2320164a917de32 1.35.0: sha256:1dac7dc2c6a56548bbc6bf8a7ecf4734f2e733fb336d7293d84541ebe52d0e50 1.34.10: sha256:550f1d6d7e73b91cc77d10f89a94e745d800e49b4b7fc509c1a670ffc6401b1b 1.34.9: sha256:892789444a830b16eb1c8d3e09a878a9ced6ac18c5765e5bb9d41123a41ce3ee 1.34.8: sha256:7b06f4442a7a819fcb4e0697721a2e4a8acda068d66ecfb4e781f213ee804884 1.34.7: sha256:f0ca19db42757a3612e2a20268209a3843b6eb8c1284f11c5fa7c31d40ed8c8f 1.34.6: sha256:7878391ea18b276ad69c570dcdaa46f74449a978f8e222f92d99855332a01f62 1.34.5: sha256:cc8a59c0f04a1d7389790dc872b1c714e4cf4d3ba0c38ca2f4ca1388fb38b774 1.34.4: sha256:d8028b7e8c8d6c9b3fc3da6bc88d4d0cfb33df1b4b026a7d6e8c35d1471c9f6e 1.34.3: sha256:697cf3aa54f1a5740b883a3b18a5d051b4032fd68ba89af626781a43ec9bccc3 1.34.2: sha256:065f7de266c59831676cc48b50f404fd18d1f6464502d53980957158e4cab3a7 1.34.1: sha256:b0dc5cf091373caf87d069dc3678e661464837e4f10156f1436bd35a9a7db06b 1.34.0: sha256:6b7108016bb2b74132f7494e200501d6522682c01759db91892051a052079c77
2. 生成集群节点清单 inventory
# 复制示例inventory
mkdir -p /data/kubespray/inv/dev-k8s
cp -r inventory/sample/* ../inv/dev-k8s
编辑清单文件 inv/dev-k8s/inventory.ini
vi ../inv/dev-k8s/inventory.ini
[kube_control_plane] k8s-master-01 ansible_host=172.21.64.36 ansible_user=root ip=172.21.64.36 etcd_member_name=etcd1 k8s-master-02 ansible_host=172.21.64.37 ansible_user=root ip=172.21.64.37 etcd_member_name=etcd2 k8s-master-03 ansible_host=172.21.64.38 ansible_user=root ip=172.21.64.38 etcd_member_name=etcd3 [etcd:children] kube_control_plane [kube_node] k8s-worker-01 ansible_host=172.21.64.39 ansible_user=root ip=172.21.64.39 k8s-worker-02 ansible_host=172.21.64.40 ansible_user=root ip=172.21.64.40 [k8s_cluster:children] kube_control_plane kube_node
2. 设置国内下载源
新建china_mirror.yml文件
cat > ../inv/dev-k8s/group_vars/all/china_mirror.yml <<'EOF' # ====================== 二进制文件下载 DaoCloud ====================== dl_k8s_io_url: "https://files.m.daocloud.io/dl.k8s.io" github_url: "https://files.m.daocloud.io/github.com" get_helm_url: "https://files.m.daocloud.io/get.helm.sh" # ====================== 容器镜像仓库域名替换(Kubespray渲染yaml替换镜像地址) ====================== kube_image_repo: "k8s.m.daocloud.io" gcr_image_repo: "gcr.m.daocloud.io" docker_image_repo: "docker.m.daocloud.io" quay_image_repo: "quay.m.daocloud.io" github_image_repo: "ghcr.m.daocloud.io" # ====================== 缓存持久化(脱离/tmp,防止系统自动清理) ====================== # 所有节点二进制文件存放目录 local_release_dir: /opt/kubespray_cache/releases # download_run_once 模式下,中控节点镜像缓存目录 download_cache_dir: /opt/kubespray_cache/cache # 部署完成不删除缓存,多次执行可复用 download_keep_remote_cache: true # ====================== 下载策略(调试阶段注释镜像预分发,规避nerdctl不存在报错) ====================== # download_run_once: true # download_localhost: true download_verify_checksum: false EOF
3. 在 inventory 里配置 containerd 镜像加速变量
编辑: ../inv/dev-k8s/group_vars/all/containerd.yml, 追加下面的内容:
注意,开头要多加一个换行
cat >> ../inv/dev-k8s/group_vars/all/containerd.yml <<'EOF' containerd_registries_mirrors: - prefix: registry.k8s.io mirrors: - host: https://k8s.m.daocloud.io capabilities: ["pull", "resolve"] - prefix: docker.io mirrors: - host: https://docker.m.daocloud.io capabilities: ["pull", "resolve"] - prefix: quay.io mirrors: - host: https://quay.m.daocloud.io capabilities: ["pull", "resolve"] - prefix: ghcr.io mirrors: - host: https://ghcr.m.daocloud.io capabilities: ["pull", "resolve"] EOF
校验containerd.yml配置文件是否合法
ansible localhost -m copy -a "content='{{ lookup('file','../inv/dev-k8s/group_vars/all/containerd.yml') }}' dest=/dev/null"
4. 验证变量是否加载成功
ansible all -i ../inv/dev-k8s/inventory.ini -m debug -a "var=containerd_registries_mirrors" -b
5. 执行下载测试命令,不安装组件、不部署集群。
ansible-playbook -i ../inv/dev-k8s/inventory.ini cluster.yml -b --tags download -v
下载失败时打印详细日志:
ansible-playbook -i ../inv/dev-k8s/inventory.ini cluster.yml -b --tags download -v -e unsafe_show_logs=true -e gather_facts=false
五,初始化master
1. 执行部署前预检,测试连通性
ansible -i ../inv/dev-k8s/inventory.ini all -m ping
2. 前置环境初始化(关闭 swap、内核模块、sysctl、容器依赖等)
ansible-playbook -i ../inv/dev-k8s/inventory.ini cluster.yml --tags=bootstrap
3. 执行安装集群
ansible-playbook -i ../inv/dev-k8s/inventory.ini cluster.yml -b
中-b参数是用sudo权限运行。
如果安装失败,重置集群,深度清理
# 1. 卸载apt旧包(防止二进制自动恢复) ansible -i ../inv/dev-k8s/inventory.ini all -b -m shell -a " apt remove -y containerd.io kubeadm kubelet kubectl; apt autoremove -y; " # 2. kubespray官方重置剧本 ansible-playbook -i ../inv/dev-k8s/inventory.ini reset.yml -b # 3. 深度全盘清理 ansible -i ../inv/dev-k8s/inventory.ini all -b -m shell -a " systemctl stop kubelet || true; systemctl stop containerd || true; # 清理新旧两路kube二进制 rm -f /usr/bin/kubelet /usr/bin/kubeadm /usr/bin/kubectl; rm -f /usr/local/bin/kubelet /usr/local/bin/kubeadm /usr/local/bin/kubectl; rm -rf /etc/systemd/system/kubelet.service /etc/systemd/system/kubelet.service.d; # k8s数据目录 rm -rf /etc/kubernetes; rm -rf /var/lib/kubelet; rm -rf /var/lib/etcd; rm -rf /var/run/kubernetes; rm -rf /etc/cni; rm -rf /opt/cni; rm -rf /root/.kube; # containerd rm -rf /etc/containerd; rm -rf /etc/crictl.yaml; rm -rf /run/containerd; rm -rf /var/lib/containerd; # 清理容器镜像 crictl stop \$(crictl ps -q) 2>/dev/null; crictl rm \$(crictl ps -a -q) 2>/dev/null; crictl rmi \$(crictl images -q) 2>/dev/null; # 网络规则 iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X; ipvsadm -C; # dns残留配置 rm -rf /etc/systemd/resolved.conf.d/*; systemctl reset-failed systemd-resolved; systemctl daemon-reload; systemctl reset-failed kubelet; systemctl reset-failed containerd; " # 单独修复master01的/dev/null(只执行这台) ansible -i ../inv/dev-k8s/inventory.ini k8s-master-01 -b -m shell -a " rm -f /dev/null; mknod -m 666 /dev/null c 1 3; systemctl reset-failed systemd-resolved; "
然后执行第3步重新安装。
4,安装成功会输出信息:
PLAY RECAP *************************************************************************************************************************************************** k8s-master-01 : ok=605 changed=92 unreachable=0 failed=0 skipped=836 rescued=0 ignored=4 k8s-master-02 : ok=516 changed=78 unreachable=0 failed=0 skipped=756 rescued=0 ignored=1 k8s-master-03 : ok=518 changed=79 unreachable=0 failed=0 skipped=754 rescued=0 ignored=1 k8s-worker-01 : ok=423 changed=52 unreachable=0 failed=0 skipped=475 rescued=0 ignored=0 k8s-worker-02 : ok=423 changed=52 unreachable=0 failed=0 skipped=474 rescued=0 ignored=0 Wednesday 12 August 2026 15:46:32 +0800 (0:00:00.274) 0:57:49.368 ****** =============================================================================== download : Download_container | Download image if required ------------------------------------------------------------------------------------------ 785.24s download : Download_container | Download image if required ------------------------------------------------------------------------------------------ 651.86s download : Download_container | Download image if required ------------------------------------------------------------------------------------------ 465.96s download : Download_container | Download image if required ------------------------------------------------------------------------------------------ 195.30s download : Download_container | Download image if required ------------------------------------------------------------------------------------------ 179.68s download : Download_container | Download image if required ------------------------------------------------------------------------------------------ 153.59s download : Download_container | Download image if required ------------------------------------------------------------------------------------------- 85.52s download : Download_container | Download image if required ------------------------------------------------------------------------------------------- 53.49s download : Download_container | Download image if required ------------------------------------------------------------------------------------------- 45.94s download : Download_container | Download image if required ------------------------------------------------------------------------------------------- 38.11s download : Download_container | Download image if required ------------------------------------------------------------------------------------------- 35.66s kubernetes/control-plane : Joining control plane node to the cluster. -------------------------------------------------------------------------------- 21.06s etcd : Gen_certs | Write etcd member/admin and kube_control_plane client certs to other etcd nodes --------------------------------------------------- 17.48s download : Download_container | Download image if required ------------------------------------------------------------------------------------------- 13.00s kubernetes/control-plane : Kubeadm | Initialize first control plane node (1st try) ------------------------------------------------------------------- 11.26s container-engine/crictl : Download_file | Download item ---------------------------------------------------------------------------------------------- 10.95s container-engine/nerdctl : Download_file | Download item --------------------------------------------------------------------------------------------- 10.51s container-engine/runc : Download_file | Download item ------------------------------------------------------------------------------------------------ 10.20s container-engine/containerd : Download_file | Download item ------------------------------------------------------------------------------------------- 9.68s etcd : Gen_certs | Gather etcd member/admin and kube_control_plane client certs from first etcd node -------------------------------------------------- 8.74s

5. 授予master本地访问权限(在每个master节点执行)
mkdir -p ~/.kube cp /etc/kubernetes/admin.conf ~/.kube/config chmod 600 ~/.kube/config
或者在管控机批量复制到所有master节点
ansible k8s-master-01 -i ../inv/dev-k8s/inventory.ini -m fetch -a "src=/etc/kubernetes/admin.conf dest=./ flat=yes" cp admin.conf ~/.kube/config chmod 600 ~/.kube/config
5.校验集群
kubectl get nodes kubectl get cs kubectl get pods -n kube-system

浙公网安备 33010602011771号