


























作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
Kubespray(原 Kargo):基于 Ansible、CNCF 维护的 K8s 一键部署工具,原生生产级 HA 集群,裸机 / 虚拟化 / 公有云全适配,主流企业自建集群首选方案。
官方文档:
https://kubespray.io/
Github地址:
https://github.com/kubernetes-sigs/kubespray
- 1.Kubernetes 的最低要求版本为 v1.30
- 2.在将运行Ansible命令的机器上,已安装了Ansible v2.14+、Jinja 2.11+和python-netaddr;
- 3.目标服务器必须能够访问互联网,以便拉取Docker镜像。否则,需要进行额外的配置(请参阅离线环境)
- 4.目标服务器已配置为允许IPv4转发。
- 5.如果为Pod和服务使用IPv6,则目标服务器配置为允许IPv6转发。
- 6.防火墙未被管理,您需要像以前一样自行制定规则。为避免部署过程中出现任何问题,您应禁用防火墙。
- 7.如果kubespray是以非root用户账户运行的,则应在目标服务器中配置正确的权限提升方法。然后,应指定ansible_become标志或命令参数--become或-b。
参考链接:
https://github.com/kubernetes-sigs/kubespray#requirements



如上图1所示,关于kubespray和k8s版本对应关系,Github上已经写的很明确了。比如我想要部署k8s 1.33.7,此处就可以优先选择kubespray v2.29.1版本。
如上图2所示,如果你想要部署k8s 1.33.12的话,就不太适合用v2.29.1,因为该版本官方默认最高支持的版本为: "1.33.10"
如上图3所示,目前kubespray官方发布的最新v2.31版本,也仅支持到v1.33.11版本哟~
当然,如果你真的有类似的需求,非要使用1.33.12版本的话,建议直接使用官方推荐部署方式,即kubeadm或者二进制的方式即可。
参考链接:
https://github.com/kubernetes-sigs/kubespray/releases
https://github.com/kubernetes-sigs/kubespray/blob/release-2.29/roles/kubespray_defaults/vars/main/checksums.yml
https://github.com/kubernetes-sigs/kubespray/blob/release-2.31/roles/kubespray_defaults/vars/main/checksums.yml
参考链接:
https://www.cnblogs.com/yinzhengjie/p/17153673.html
1.下载项目
[root@ansible99 ~]# git clone https://github.com/kubernetes-sigs/kubespray.git
Cloning into 'kubespray'...
remote: Enumerating objects: 87493, done.
remote: Counting objects: 100% (65/65), done.
remote: Compressing objects: 100% (46/46), done.
remote: Total 87493 (delta 41), reused 19 (delta 19), pack-reused 87428 (from 2)
Receiving objects: 100% (87493/87493), 28.54 MiB | 4.66 MiB/s, done.
Resolving deltas: 100% (49196/49196), done.
[root@ansible99 ~]#
2.切换分支
[root@ansible99 ~]# cd kubespray/
[root@ansible99 kubespray]#
[root@ansible99 kubespray]# git checkout release-2.29
branch 'release-2.29' set up to track 'origin/release-2.29'.
Switched to a new branch 'release-2.29'
[root@ansible99 kubespray]#
[root@ansible99 kubespray]# git branch
master
* release-2.29
[root@ansible99 kubespray]#
温馨提示:
上述2条命令我们也可以用一行命令来实现。
[root@ansible99 ~]# git clone -b release-2.29 https://github.com/kubernetes-sigs/kubespray.git
Cloning into 'kubespray'...
remote: Enumerating objects: 87493, done.
remote: Counting objects: 100% (84/84), done.
remote: Compressing objects: 100% (64/64), done.
remote: Total 87493 (delta 45), reused 16 (delta 16), pack-reused 87409 (from 2)
Receiving objects: 100% (87493/87493), 28.48 MiB | 12.14 MiB/s, done.
Resolving deltas: 100% (49197/49197), done.
[root@ansible99 ~]#
[root@ansible99 ~]#
[root@ansible99 ~]# cd kubespray/
[root@ansible99 kubespray]#
[root@ansible99 kubespray]# git branch
* release-2.29
[root@ansible99 kubespray]#
1.准备集群文件
[root@ansible99 kubespray]# cp -a inventory/{sample,yinzhengjie-k8s}
[root@ansible99 kubespray]#
[root@ansible99 kubespray]# vim inventory/yinzhengjie-k8s/inventory.ini
[all]
master231 ansible_host=10.0.0.231 ip=10.0.0.231
master232 ansible_host=10.0.0.232 ip=10.0.0.232
master233 ansible_host=10.0.0.233 ip=10.0.0.233
worker66 ansible_host=10.0.0.66 ip=10.0.0.66
worker77 ansible_host=10.0.0.77 ip=10.0.0.77
# 控制面 Master 节点(HA 写多个)
[kube_control_plane]
master231
master232
master233
# etcd 集群(推荐与 control plane 一致,也可独立节点)
[etcd]
master231
master232
master233
# 工作节点
[kube_node]
worker66
worker77
# 负载均衡(HA 集群必选,默认使用内置 haproxy)
[kube_lb]
# 可选:Calico BGP 路由反射器
[calico_rr]
2.自定义集群配置
[root@ansible99 kubespray]# vim inventory/yinzhengjie-k8s/group_vars/k8s_cluster/k8s-cluster.yml
...
# 需要关注的配置
kube_network_plugin: calico
kube_service_addresses: 10.200.0.0/16
kube_pods_subnet: 10.100.0.0/16
cluster_name: yinzhengjie.com
container_manager: containerd
# 需要新增的配置
kubelet_cgroup_driver: cgroupfs
kube_cert_validity_period: 438000h
kube_ca_cert_validity_period: 876000h
kube_kubeadm_controller_extra_args:
cluster-signing-duration: 175200h
# 建议写死版本,不然这个软件有点抽风,一会部署k8s 1.33.7,一会有部署k8s 1.33.10让人摸不着头脑!
kube_version: 1.33.10
[root@ansible99 kubespray]#
温馨提示:
更多关于变量的信息,可直接参考官方文档: https://kubespray.io/#/docs/ansible/vars
3.构建python虚拟环境
[root@ansible99 kubespray]# apt update && apt -y install python3-pip python3-venv
[root@ansible99 kubespray]# python3 -m venv venv
[root@ansible99 kubespray]# source venv/bin/activate
(venv) [root@ansible99 kubespray]#
4.安装依赖(锁定ansible版本适配v2.29)
(venv) [root@ansible99 kubespray]# pip3 list
Package Version
------- -------
pip 24.0
(venv) [root@ansible99 kubespray]#
(venv) [root@ansible99 kubespray]# pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
(venv) [root@ansible99 kubespray]#
(venv) [root@ansible99 kubespray]#
(venv) [root@ansible99 kubespray]# pip3 list
Package Version
------------ -------
ansible 10.7.0
ansible-core 2.17.14
cffi 2.0.0
cryptography 46.0.2
Jinja2 3.1.6
jmespath 1.0.1
MarkupSafe 3.0.3
netaddr 1.3.0
packaging 26.2
pip 24.0
pycparser 3.0
PyYAML 6.0.3
resolvelib 1.0.1
(venv) [root@ansible99 kubespray]#
5.免密ssh分发密钥至所有节点
(venv) [root@ansible99 kubespray]# ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519
(venv) [root@ansible99 kubespray]# ssh-copy-id root@10.0.0.231
(venv) [root@ansible99 kubespray]# ssh-copy-id root@10.0.0.232
(venv) [root@ansible99 kubespray]# ssh-copy-id root@10.0.0.233
(venv) [root@ansible99 kubespray]# ssh-copy-id root@10.0.0.66
(venv) [root@ansible99 kubespray]# ssh-copy-id root@10.0.0.77
(venv) [root@ansible99 kubespray]# vim inventory/yinzhengjie-k8s/group_vars/all/containerd.yml
...
containerd_use_systemd_cgroup: false
containerd_registries_mirrors:
- prefix: harbor250.yinzhengjie.com
mirrors:
- host: http://harbor250.yinzhengjie.com
capabilities: ["pull", "resolve"]
skip_verify: true
#header:
# Authorization: "Basic YWRtaW46MQ=="
containerd_registry_auth:
- registry: harbor250.yinzhengjie.com
username: admin
password: 1
(venv) [root@ansible99 kubespray]# vim inventory/yinzhengjie-k8s/group_vars/all/all.yml
...
additional_sysctl:
- { name: fs.inotify.max_user_instances, value: 8192 }
unsafe_show_logs: true
# 固定 Python 解释器,关闭自动探测警告
ansible_python_interpreter: /usr/bin/python3.12
# 允许用户/组已存在,避免重复创建报错
adduser_ignore_existing: true


1.进入offline目录,执行脚本生成离线资源清单files.list和images.list【此步骤会生成一个temp/目录】
(venv) [root@ansible99 kubespray]# cd contrib/offline && bash generate_list.sh
2.修改temp/files.list文件,加上files.m.daocloud.io前缀
(venv) [root@ansible99 offline]# sed -i "s#https://#https://files.m.daocloud.io/#g" temp/files.list
3.修改images.list文件,修改成daocloud的镜像加速配置
(venv) [root@ansible99 offline]# sed -i "s@quay.io@quay.m.daocloud.io@g" temp/images.list
(venv) [root@ansible99 offline]# sed -i "s@docker.io@docker.m.daocloud.io@g" temp/images.list
(venv) [root@ansible99 offline]# sed -i "s@registry.k8s.io@k8s.m.daocloud.io@g" temp/images.list
(venv) [root@ansible99 offline]# sed -i "s@ghcr.io@ghcr.m.daocloud.io@g" temp/images.list
4.执行以下命令将依赖的静态文件全部下载到 temp/files 目录下
(venv) [root@ansible99 offline]# wget -x -P temp/files -i temp/files.list
5.执行skopeo命令迁移镜像到镜像仓库
(venv) [root@ansible99 offline]# apt -y install skopeo
(venv) [root@ansible99 offline]#
(venv) [root@ansible99 offline]# cd temp/
(venv) [root@ansible99 temp]#
(venv) [root@ansible99 temp]# echo 10.0.0.250 harbor250.yinzhengjie.com >> /etc/hosts
(venv) [root@ansible99 temp]#
(venv) [root@ansible99 temp]# skopeo login --tls-verify=false -u admin -p 1 harbor250.yinzhengjie.com
Login Succeeded!
(venv) [root@ansible99 temp]#
(venv) [root@ansible99 temp]# for image in $(cat images.list); do skopeo copy --dest-tls-verify=false docker://${image} docker://harbor250.yinzhengjie.com/k8s/${image#*/}; done
6.查看harbor的WebUI
如上图所示。

1.准备站点目录
[root@harbor250 ~]# mkdir -pv /yinzhengjie/data/kubespray
2.拷贝k8s相关的二进制文件到站点目录
(venv) [root@ansible99 kubespray]# scp -r contrib/offline/temp/files/files.m.daocloud.io/ 10.0.0.250:/yinzhengjie/data/kubespray
3.准备nginx的站点配置文件
[root@harbor250 ~]# cat default.conf
server {
listen 80;
server_name harbor250.yinzhengjie.com;
root /usr/share/nginx/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
[root@harbor250 ~]#
4.启动容器
[root@harbor250 ~]# docker run -it -d -p 8080:80 -v /root/default.conf:/etc/nginx/conf.d/default.conf --name kubespray-server -v /yinzhengjie/data/kubespray/:/usr/share/nginx/html/ docker.m.daocloud.io/library/nginx:1.25.1-alpine
5.访问测试
访问效果如上图所示。
(venv) [root@ansible99 kubespray]# vim inventory/yinzhengjie-k8s/group_vars/all/offline.yml
---
## Global Offline settings
### Private Container Image Registry
# registry_host: "myprivateregisry.com"
registry_host: "harbor250.yinzhengjie.com/k8s"
files_repo: "http://harbor250.yinzhengjie.com:8080/files.m.daocloud.io"
### If using CentOS, RedHat, AlmaLinux or Fedora
# yum_repo: "http://myinternalyumrepo"
### If using Debian
# debian_repo: "http://myinternaldebianrepo"
### If using Ubuntu
# ubuntu_repo: "http://myinternalubunturepo"
## Container Registry overrides
kube_image_repo: "{{ registry_host }}"
gcr_image_repo: "{{ registry_host }}"
github_image_repo: "{{ registry_host }}"
docker_image_repo: "{{ registry_host }}"
quay_image_repo: "{{ registry_host }}"
## Kubernetes components
kubeadm_download_url: "{{ files_repo }}/dl.k8s.io/release/v{{ kube_version }}/bin/linux/{{ image_arch }}/kubeadm"
kubectl_download_url: "{{ files_repo }}/dl.k8s.io/release/v{{ kube_version }}/bin/linux/{{ image_arch }}/kubectl"
kubelet_download_url: "{{ files_repo }}/dl.k8s.io/release/v{{ kube_version }}/bin/linux/{{ image_arch }}/kubelet"
## Two options - Override entire repository or override only a single binary.
## [Optional] 1 - Override entire binary repository
# github_url: "https://my_github_proxy"
# dl_k8s_io_url: "https://my_dl_k8s_io_proxy"
# storage_googleapis_url: "https://my_storage_googleapi_proxy"
# get_helm_url: "https://my_helm_sh_proxy"
## [Optional] 2 - Override a specific binary
## CNI Plugins
cni_download_url: "{{ files_repo }}/github.com/containernetworking/plugins/releases/download/v{{ cni_version }}/cni-plugins-linux-{{ image_arch }}-v{{ cni_version }}.tgz"
## cri-tools
crictl_download_url: "{{ files_repo }}/github.com/kubernetes-sigs/cri-tools/releases/download/v{{ crictl_version }}/crictl-v{{ crictl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz"
## [Optional] etcd: only if you use etcd_deployment=host
etcd_download_url: "{{ files_repo }}/github.com/etcd-io/etcd/releases/download/v{{ etcd_version }}/etcd-v{{ etcd_version }}-linux-{{ image_arch }}.tar.gz"
# [Optional] Calico: If using Calico network plugin
calicoctl_download_url: "{{ files_repo }}/github.com/projectcalico/calico/releases/download/v{{ calico_ctl_version }}/calicoctl-linux-{{ image_arch }}"
# [Optional] Calico with kdd: If using Calico network plugin with kdd datastore
calico_crds_download_url: "{{ files_repo }}/github.com/projectcalico/calico/archive/v{{ calico_version }}.tar.gz"
# [Optional] Cilium: If using Cilium network plugin
ciliumcli_download_url: "{{ files_repo }}/github.com/cilium/cilium-cli/releases/download/v{{ cilium_cli_version }}/cilium-linux-{{ image_arch }}.tar.gz"
# [Optional] helm: only if you set helm_enabled: true
helm_download_url: "{{ files_repo }}/get.helm.sh/helm-v{{ helm_version }}-linux-{{ image_arch }}.tar.gz"
# [Optional] crun: only if you set crun_enabled: true
crun_download_url: "{{ files_repo }}/github.com/containers/crun/releases/download/{{ crun_version }}/crun-{{ crun_version }}-linux-{{ image_arch }}"
# [Optional] kata: only if you set kata_containers_enabled: true
kata_containers_download_url: "{{ files_repo }}/github.com/kata-containers/kata-containers/releases/download/{{ kata_containers_version }}/kata-static-{{ kata_containers_version }}-{{ image_arch }}.tar.xz"
# [Optional] cri-dockerd: only if you set container_manager: docker
cri_dockerd_download_url: "{{ files_repo }}/github.com/Mirantis/cri-dockerd/releases/download/v{{ cri_dockerd_version }}/cri-dockerd-{{ cri_dockerd_version }}.{{ image_arch }}.tgz"
# [Optional] runc: if you set container_manager to containerd or crio
runc_download_url: "{{ files_repo }}/github.com/opencontainers/runc/releases/download/v{{ runc_version }}/runc.{{ image_arch }}"
# [Optional] cri-o: only if you set container_manager: crio
# crio_download_base: "download.opensuse.org/repositories/devel:kubic:libcontainers:stable"
# crio_download_crio: "http://{{ crio_download_base }}:/cri-o:/"
crio_download_url: "{{ files_repo }}/storage.googleapis.com/cri-o/artifacts/cri-o.{{ image_arch }}.v{{ crio_version }}.tar.gz"
skopeo_download_url: "{{ files_repo }}/github.com/lework/skopeo-binary/releases/download/v{{ skopeo_version }}/skopeo-linux-{{ image_arch }}"
# [Optional] containerd: only if you set container_runtime: containerd
containerd_download_url: "{{ files_repo }}/github.com/containerd/containerd/releases/download/v{{ containerd_version }}/containerd-{{ containerd_version }}-linux-{{ image_arch }}.tar.gz"
nerdctl_download_url: "{{ files_repo }}/github.com/containerd/nerdctl/releases/download/v{{ nerdctl_version }}/nerdctl-{{ nerdctl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz"
# [Optional] runsc,containerd-shim-runsc: only if you set gvisor_enabled: true
gvisor_runsc_download_url: "{{ files_repo }}/storage.googleapis.com/gvisor/releases/release/{{ gvisor_version }}/{{ ansible_architecture }}/runsc"
gvisor_containerd_shim_runsc_download_url: "{{ files_repo }}/storage.googleapis.com/gvisor/releases/release/{{ gvisor_version }}/{{ ansible_architecture }}/containerd-shim-runsc-v1"
## CentOS/Redhat/AlmaLinux
### For EL8, baseos and appstream must be available,
### By default we enable those repo automatically
# rhel_enable_repos: false
### Docker / Containerd
#docker_rh_repo_base_url: "{{ yum_repo }}/docker-ce/$releasever/$basearch"
#docker_rh_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg"
## Fedora
### Docker
#docker_fedora_repo_base_url: "{{ yum_repo }}/docker-ce/{{ ansible_distribution_major_version }}/{{ ansible_architecture }}"
#docker_fedora_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg"
### Containerd
#containerd_fedora_repo_base_url: "{{ yum_repo }}/containerd"
#containerd_fedora_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg"
## Debian
### Docker
# docker_debian_repo_base_url: "{{ debian_repo }}/docker-ce"
# docker_debian_repo_gpgkey: "{{ debian_repo }}/docker-ce/gpg"
### Containerd
# containerd_debian_repo_base_url: "{{ debian_repo }}/containerd"
# containerd_debian_repo_gpgkey: "{{ debian_repo }}/containerd/gpg"
# containerd_debian_repo_repokey: 'YOURREPOKEY'
## Ubuntu
### Docker
# docker_ubuntu_repo_base_url: "{{ ubuntu_repo }}/docker-ce"
# docker_ubuntu_repo_gpgkey: "{{ ubuntu_repo }}/docker-ce/gpg"
### Containerd
# containerd_ubuntu_repo_base_url: "{{ ubuntu_repo }}/containerd"
# containerd_ubuntu_repo_gpgkey: "{{ ubuntu_repo }}/containerd/gpg"
# containerd_ubuntu_repo_repokey: 'YOURREPOKEY'
1.添加hosts解析
(venv) [root@ansible99 kubespray]# ansible -i inventory/yinzhengjie-k8s/inventory.ini all -m shell -a 'echo 10.0.0.250 harbor250.yinzhengjie.com >> /etc/hosts'
master233 | CHANGED | rc=0 >>
master232 | CHANGED | rc=0 >>
worker77 | CHANGED | rc=0 >>
master231 | CHANGED | rc=0 >>
worker66 | CHANGED | rc=0 >>
(venv) [root@ansible99 kubespray]#
(venv) [root@ansible99 kubespray]#
(venv) [root@ansible99 kubespray]# ansible -i inventory/yinzhengjie-k8s/inventory.ini all -m shell -a 'cat /etc/hosts|grep harbor250'
master233 | CHANGED | rc=0 >>
10.0.0.250 harbor250.yinzhengjie.com
master231 | CHANGED | rc=0 >>
10.0.0.250 harbor250.yinzhengjie.com
worker66 | CHANGED | rc=0 >>
10.0.0.250 harbor250.yinzhengjie.com
worker77 | CHANGED | rc=0 >>
10.0.0.250 harbor250.yinzhengjie.com
master232 | CHANGED | rc=0 >>
10.0.0.250 harbor250.yinzhengjie.com
(venv) [root@ansible99 kubespray]#
2.部署集群
(venv) [root@ansible99 kubespray]# ansible-playbook -i inventory/yinzhengjie-k8s/inventory.ini cluster.yml
温馨提示:
- 1.此步骤不成功,就不要继续往下操作了,先解决问题后再做后续验证;
- 2.关于故障排查技巧,可以参考如下命令:
ansible-playbook -i inventory/yinzhengjie-k8s/inventory.ini reset.yml
ansible-playbook -i inventory/yinzhengjie-k8s/inventory.ini cluster.yml -vvv
1.检查worker节点
[root@master231 ~]# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
master231 Ready control-plane 5m21s v1.33.10 10.0.0.231 <none> Ubuntu 24.04.4 LTS 6.8.0-117-generic containerd://2.1.6
master232 Ready control-plane 4m41s v1.33.10 10.0.0.232 <none> Ubuntu 24.04.4 LTS 6.8.0-117-generic containerd://2.1.6
master233 Ready control-plane 4m19s v1.33.10 10.0.0.233 <none> Ubuntu 24.04.4 LTS 6.8.0-117-generic containerd://2.1.6
worker66 Ready <none> 3m34s v1.33.10 10.0.0.66 <none> Ubuntu 24.04.4 LTS 6.8.0-117-generic containerd://2.1.6
worker77 Ready <none> 3m34s v1.33.10 10.0.0.77 <none> Ubuntu 24.04.4 LTS 6.8.0-117-generic containerd://2.1.6
[root@master231 ~]#
[root@master231 ~]#
2.检查证书有效期【我设置的是CA证书100年,master和】
[root@master232 ~]# kubeadm certs check-expiration
[check-expiration] Reading configuration from the "kubeadm-config" ConfigMap in namespace "kube-system"...
[check-expiration] Use 'kubeadm init phase upload-config --config your-config-file' to re-upload it.
W0612 15:05:16.293484 36532 utils.go:69] The recommended value for "clusterDNS" in "KubeletConfiguration" is: [10.200.0.10]; the provided value is: [169.254.25.10]
CERTIFICATE EXPIRES RESIDUAL TIME CERTIFICATE AUTHORITY EXTERNALLY MANAGED
admin.conf May 30, 2076 06:58 UTC 49y ca no
apiserver May 30, 2076 06:58 UTC 49y ca no
apiserver-kubelet-client May 30, 2076 06:58 UTC 49y ca no
controller-manager.conf May 30, 2076 06:58 UTC 49y ca no
front-proxy-client May 30, 2076 06:58 UTC 49y front-proxy-ca no
scheduler.conf May 30, 2076 06:58 UTC 49y ca no
!MISSING! super-admin.conf
CERTIFICATE AUTHORITY EXPIRES RESIDUAL TIME EXTERNALLY MANAGED
ca May 19, 2126 06:58 UTC 99y no
front-proxy-ca May 19, 2126 06:58 UTC 99y no
[root@master232 ~]#
3.检查worker组件证书的有效期【注意哈,证书有效期是20年的哟~】
[root@master232 ~]# openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -text -noout | grep Validity -A 2
Validity
Not Before: Jun 12 09:48:02 2026 GMT
Not After : Jun 7 09:48:02 2046 GMT
[root@master232 ~]#
4.检查K8S集群网络网段分配情况
[root@master231 ~]# kubectl get pods -A -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system calico-kube-controllers-6b48c55b44-wqf6s 1/1 Running 0 54s 10.100.165.3 worker77 <none> <none>
kube-system calico-node-fxd72 1/1 Running 0 54s 10.0.0.233 master233 <none> <none>
kube-system calico-node-h6cfh 1/1 Running 0 54s 10.0.0.231 master231 <none> <none>
kube-system calico-node-rwhkz 1/1 Running 0 53s 10.0.0.66 worker66 <none> <none>
kube-system calico-node-wqmzd 1/1 Running 0 53s 10.0.0.232 master232 <none> <none>
kube-system calico-node-zsbx2 1/1 Running 0 52s 10.0.0.77 worker77 <none> <none>
kube-system coredns-594cbfb5fd-8wxd5 1/1 Running 0 53s 10.100.249.1 master232 <none> <none>
kube-system coredns-594cbfb5fd-ddx7g 1/1 Running 0 53s 10.100.160.129 master231 <none> <none>
kube-system dns-autoscaler-8558dbc749-8q5w5 1/1 Running 0 53s 10.100.165.4 worker77 <none> <none>
kube-system kube-apiserver-master231 1/1 Running 1 (4m23s ago) 52s 10.0.0.231 master231 <none> <none>
kube-system kube-apiserver-master232 1/1 Running 1 (4m18s ago) 52s 10.0.0.232 master232 <none> <none>
kube-system kube-apiserver-master233 1/1 Running 1 (4m12s ago) 51s 10.0.0.233 master233 <none> <none>
kube-system kube-controller-manager-master231 1/1 Running 2 (4m23s ago) 51s 10.0.0.231 master231 <none> <none>
kube-system kube-controller-manager-master232 1/1 Running 2 (4m18s ago) 51s 10.0.0.232 master232 <none> <none>
kube-system kube-controller-manager-master233 1/1 Running 2 (4m12s ago) 51s 10.0.0.233 master233 <none> <none>
kube-system kube-proxy-cd7zn 1/1 Running 0 50s 10.0.0.66 worker66 <none> <none>
kube-system kube-proxy-hsq49 1/1 Running 0 49s 10.0.0.232 master232 <none> <none>
kube-system kube-proxy-nn8c5 1/1 Running 0 49s 10.0.0.231 master231 <none> <none>
kube-system kube-proxy-tds6l 1/1 Running 0 49s 10.0.0.233 master233 <none> <none>
kube-system kube-proxy-th7x9 1/1 Running 0 50s 10.0.0.77 worker77 <none> <none>
kube-system kube-scheduler-master231 1/1 Running 2 (4m23s ago) 50s 10.0.0.231 master231 <none> <none>
kube-system kube-scheduler-master232 1/1 Running 2 (4m18s ago) 50s 10.0.0.232 master232 <none> <none>
kube-system kube-scheduler-master233 1/1 Running 2 (4m12s ago) 50s 10.0.0.233 master233 <none> <none>
kube-system nginx-proxy-worker66 1/1 Running 1 (4m7s ago) 50s 10.0.0.66 worker66 <none> <none>
kube-system nginx-proxy-worker77 1/1 Running 1 (4m9s ago) 49s 10.0.0.77 worker77 <none> <none>
kube-system nodelocaldns-5z9pz 1/1 Running 0 47s 10.0.0.231 master231 <none> <none>
kube-system nodelocaldns-f2v5d 1/1 Running 1 (44s ago) 49s 10.0.0.232 master232 <none> <none>
kube-system nodelocaldns-fjk2c 1/1 Running 3 (28s ago) 49s 10.0.0.233 master233 <none> <none>
kube-system nodelocaldns-msjwp 1/1 Running 2 (33s ago) 49s 10.0.0.66 worker66 <none> <none>
kube-system nodelocaldns-z8rf5 1/1 Running 0 48s 10.0.0.77 worker77 <none> <none>
[root@master231 ~]#
[root@master231 ~]# kubectl get svc -A
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes ClusterIP 10.200.0.1 <none> 443/TCP 26m
kube-system coredns ClusterIP 10.200.0.3 <none> 53/UDP,53/TCP,9153/TCP 22m
[root@master231 ~]#
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。