k8s cluster のhealth check
Cubeでインストールした機器において、KubernetesとCocktailの主要コンポーネントの状態をチェックする方法は、以下のとおりである.
これは、cubeでインストールした後、k8sの主要コンポーネントが正常動作するかを確認することができる.
- cube statusコマンドで etcd、k8s pod、monitoring pod、cocktail podのステータスをチェックすることができる.
etcd daemonは、kubernetesで作成される各種objectのデータストアとして、HA環境の場合、etcd clusterで構成(少なくとも3台)され
etcd clusterが正常に動作するかを確認することができる.
特定のnodeがunhealth状態の場合、該当メッセージが出力される.
# export ETCDCTL_API=3
# etcdctl --cert /etc/kubernetes/pki/etcd-peer.crt --key /etc/kubernetes/pki/etcd-peer.key
--cacert /etc/kubernetes/pki/etcd-ca.crt
--endpoints=https://k8s-elb-bb5c1a1a1159199b.elb.ap-northeast-2.amazonaws.com:2379 endpoint health
member 343f53e92dacc502 is healthy: got healthy result from http://192.168.0.172:2379
member c9e93f4efc1a9813 is healthy: got healthy result from http://192.168.0.173:2379
member f95af587a997f2bf is healthy: got healthy result from http://192.168.0.171:2379
cluster is healthy
etcd clusterを構成するnodeのip、portとどのnodeがleaderとして構成されているかを確認することができる.
# etcdctl --cert /etc/kubernetes/pki/etcd-peer.crt --key /etc/kubernetes/pki/etcd-peer.key
--cacert /etc/kubernetes/pki/etcd-ca.crt
--endpoints=https://k8s-elb-bb5c1a1a1159199b.elb.ap-northeast-2.amazonaws.com:2379 member list
2ff8ca0b39f4ce02, started, ip-10-0-0-37, https://10.0.0.37:2380, https://10.0.0.37:2379
40e0ff5ee27c98d0, started, ip-10-0-0-6, https://10.0.0.6:2380, https://10.0.0.6:2379
f1ada6cc179c0400, started, ip-10-0-0-17, https://10.0.0.17:2380, https://10.0.0.17:237
- Dockerの状態をチェック
# systemctl status docker
- kubeletデーモンの状態をチェック
# systemctl status kubelet
- system log message 照会
システムログには、k8sの基本コンポーネントのログ情報がリアルタイムで記録されるため、問題発生時は、該当logをtailで照会し、エラー内容をまず把握するのが効果的である.
# tail -f /var/log/messages
- • masterとnode間が正常に接続しているかを確認
kubectlコマンドを活用し、masterサーバーでclusterに含まれているnodeの接続状態を照会することができる.
# kubectl get nodes