付録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.

最終更新