5.4. 利用できない Kubernetes API の調査
Kubernetes API が利用できない場合は、コントロールプレーンノードをチェックして、正しいコンポーネントが実行されていることを確認します。また、ホスト名の解決も確認してください。
手順
次のコマンドを実行して、各コントロールプレーンノードで
etcd
が実行されていることを確認します。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
上にある必要があります。