5.4. 调查不可用的 Kubernetes API
当 Kubernetes API 不可用时,检查 control plane 节点以确保它们运行正确的组件。另外,检查主机名解析。
流程
运行以下命令,确保
etcd
在每个 control plane 节点上运行:sudo crictl logs $(sudo crictl ps --pod=$(sudo crictl pods --name=etcd-member --quiet) --quiet)
$ sudo crictl logs $(sudo crictl ps --pod=$(sudo crictl pods --name=etcd-member --quiet) --quiet)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果上一命令失败,请运行以下命令确保 Kubelet 创建
etcd
pod:sudo crictl pods --name=etcd-member
$ sudo crictl pods --name=etcd-member
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有 pod,请调查
etcd
。使用以下命令检查集群节点,以确保它们具有完全限定域名,而不只是
localhost.localdomain
:hostname
$ hostname
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有设置主机名,请设置正确的主机名。例如:
sudo hostnamectl set-hostname <hostname>
$ sudo hostnamectl set-hostname <hostname>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
dig
命令,确保每个节点在 DNS 服务器中具有正确的名称解析:dig api.<cluster_name>.example.com
$ dig api.<cluster_name>.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> api.<cluster_name>.example.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37551 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 866929d2f8e8563582af23f05ec44203d313e50948d43f60 (good) ;; QUESTION SECTION: ;api.<cluster_name>.example.com. IN A ;; ANSWER SECTION: api.<cluster_name>.example.com. 10800 IN A 10.19.13.86 ;; AUTHORITY SECTION: <cluster_name>.example.com. 10800 IN NS <cluster_name>.example.com. ;; ADDITIONAL SECTION: <cluster_name>.example.com. 10800 IN A 10.19.14.247 ;; Query time: 0 msec ;; SERVER: 10.19.14.247#53(10.19.14.247) ;; WHEN: Tue May 19 20:30:59 UTC 2020 ;; MSG SIZE rcvd: 140
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> api.<cluster_name>.example.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37551 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 866929d2f8e8563582af23f05ec44203d313e50948d43f60 (good) ;; QUESTION SECTION: ;api.<cluster_name>.example.com. IN A ;; ANSWER SECTION: api.<cluster_name>.example.com. 10800 IN A 10.19.13.86 ;; AUTHORITY SECTION: <cluster_name>.example.com. 10800 IN NS <cluster_name>.example.com. ;; ADDITIONAL SECTION: <cluster_name>.example.com. 10800 IN A 10.19.14.247 ;; Query time: 0 msec ;; SERVER: 10.19.14.247#53(10.19.14.247) ;; WHEN: Tue May 19 20:30:59 UTC 2020 ;; MSG SIZE rcvd: 140
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例中的输出显示
api.<cluster_name>.example.com
VIP 的适当 IP 地址为10.19.13.86
。此 IP 地址应当位于baremetal
网络中。