付録4:運用時のトラブルシューティング kubernetesマスタの接続が切れてしまった
kubernetesマスタがサービスダウンまたは何か問題があった場合、kubernetesマスタを再起動しないといけません。ただし、再起動しても、サーバーが正常に起動できますが、k8sはLoad Balanceから情報を取得できません。
kubeの設定がまだ三つのマスタに指しているのは原因となります。
コピー [ubuntu@saas-i-prod-saasdiamondali10 ~]$ kubectl get pods
No resources found.
[ubuntu@saas-i-prod-saasdiamondali10 ~]$ kubectl get pods
No resources found.
[ubuntu@saas-i-prod-saasdiamondali10 ~]$ kubectl get pods
3回目の取得コマンドは待ち状態となってしまって、応答がありませんでした。
ところが、ポート6443は動いています。Load Banlanceをマスタに切り替えて、.kube/config
を修正したら、すぐに応答が帰ってきました。
修正前:
コピー server: https://10.0.222.212:9443
修正後:
コピー server: https://10.0.222.222:6443
修正後、もう一回試したら、応答が予想通りに帰ってきました。
コピー [ubuntu@saas-i-prod-saasdiamondali10 ~]$ kubectl get pods
No resources found.
調べた原因として、下記の二つのコンテナが起動されませんでした。
コピー $ sudo docker ps -a | grep haproxy && sudo docker ps -a | grep keepalive
646f3c72799c registry.sensetime.com/diamond/haproxy:2.1.2-1 "/docker-entrypoint.…" 6 weeks ago Exited (0) 21 hours ago diamond-haproxy
5ca5eeb00609 registry.sensetime.com/diamond/keepalived:2.0.19 "/container/tool/run" 6 weeks ago Exited (0) 21 hours ago diamond-keepalived
手動でdockerを起動したら
コピー $ sudo docker start 646f3c72799c && sudo docker start 5ca5eeb00609
サービスは正常に戻りました。
コピー [ubuntu@saas-i-prod-saasdiamondali10 ~]$ kubectl get pods
No resources found.