はじめに
このドキュメントでは、ポリシー制御機能(PCF)に「Kubernetes Pod Not Ready」と表示される場合のトラブルシューティング手順について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- PCF
- 5Gクラウドネイティブ導入プラットフォーム(CNDP)
- ドックカーとKubernetes
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- PCF REL_2023.01.2
- Kubernetes v1.24.6
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
この設定では、CNDPはPCFをホストします。
Kubernetesのポッドが「受信不可」状態の場合、1つ以上のコンテナが受信可状態でないため、そのポッドは現在トラフィックを処理できないことを意味します。これは、起動中のコンテナ、ヘルスチェックの失敗、エラーの発生など、さまざまな理由が考えられます。
問題
Kubernetes(K8s)ポッドのCommon Execution Environment(CEE)で受信不可状態のアラートが表示されます。
Command:
cee# show alerts active summary summary
Example:
[pcf01/pcfapp] cee# show alerts active summary
NAME UID SEVERITY STARTS AT DURATION SOURCE SUMMARY
----------------------------------------------------------------------------------------------------------
k8s-pod-not-ready 35b143f885ec critical 06-13T08:22:05 mirror-maker-0 Pod pcf-pcf/mirror-maker-0 has been in a non-ready state for longer than 1 minute
k8s-pod-crashing-loop 990b651ad5f5 critical 04-19T22:51:08 pcf01-master-2 Pod cee-irv1bmpcf/pgpool-65fc8b8d5f-2w9nq (pgpool) is restarting 2.03 times / 10 minutes.
k8s-pod-restarting a44d31701faf minor 04-19T01:55:38 pcf01-master-2 Pod cee-irv1bmpcf/pgpool-65fc8b8d5f-2w9nq (pgpool) is restarting 2.03 times / 10 minutes.
k8s-deployment-replic b8f04c540905 critical 04-06T01:53:48 pcf01-master-2 Deployment cee-irv1bmpcf/pgpool has not matched the expected number of replicas for longer th...
k8s-pod-not-ready cb2c8ee4a9c9 critical 04-06T01:53:48 pgpool-65fc8b8d5f-2w9 Pod cee-pcf/pgpool-65fc8b8d5f-2w9nq has been in a non-ready state for longer than 5 min...
分析
アプローチ1
Kubernetes(K8s)ノードにログインした後、現在「Not Ready」ステータスになっているノードのアラートを確認します。
アップグレードまたはメンテナンスプロセスを確認することをお勧めします。その時点で、ポッドをオフラインにして、更新の適用、新しいソフトウェアのインストール、その他の必要なタスクの実行、またはポッドの可用性に影響を与える可能性がある継続的なメンテナンス作業を行うことができます。
ミラーポッドは、ピアサイト(GR)でサイトアップグレードを実行している間は、前述の状態であると想定されます。
マスターノードに接続し、ミラーポッドのステータスを確認します。
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep mirror
NAMESPACE NAME READY STATUS RESTARTS AGE
pcf-pcf01 mirror-maker-0 0/1 Running 1 5d23h
#Post upgrade Activity mirror-maker pod status
cloud-user@pcf01-master-1:~$ kubectl get pods -A|grep mirror
pcf-pcf01 mirror-maker-0 1/1 Running 1 6d.
アプローチ2
Kubernetes(K8)ポッドがCEE内で準備完了状態ではないことを示すアラートを受信する場合、ポッドで問題が発生しており、完全に動作可能であると見なできないことを示しています。この状態は通常、ポッドがトラフィックを受け入れることができないこと、または目的の機能を果たすことができないことを意味します。
「受信不可」ステータスの原因を理解するために、アラートおよび関連情報を分析します。アラートは、ノードのステータス変更の原因となった特定の問題またはトリガーに関する詳細を提供できます。ノードが「受信不可」ステータスになる一般的な原因には、リソースの制約、ネットワーク接続の問題、ハードウェアの障害、設定の問題などがあります。
ステップ 1:コマンドを使用してポッドのステータスを確認しkubectl get pods
、ポッドのステータスを確認します。ポッドの準備ができていない場合は、「Pending」、「CrashLoopBackOff」、「Error」などのステータスが表示されます。
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep -v Running
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
cee-pcf pgpool-65fc8b8d5f-2w9nq 0/1 CrashLoopBackOff 147 (117s ago) 8d xxx.xxx.xxx.xx pcf01-master-2 <none> <none>
All nodes including master-2 are in Ready state
cloud-user@pcf01-master-1:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
Pcf01-master-1 Ready control-plane 667d v1.24.6
Pcf01-master-2 Ready control-plane 9d v1.24.6
Pcf01-master-3 Ready control-plane 9d v1.24.6
Pcf01-worker-1 Ready <none> 9d v1.24.6
Pcf01-worker-10 Ready <none> 9d v1.24.6
Pcf01-worker-11 Ready <none> 9d v1.24.6
Pcf01-worker-12 Ready <none> 9d v1.24.6
Pcf01-worker-13 Ready <none> 9d v1.24.6
Pcf01-worker-14 Ready <none> 9d v1.24.6
Pcf01-worker-15 Ready <none> 9d v1.24.6
Pcf01-worker-16 Ready <none> 9d v1.24.6
Pcf01-worker-17 Ready <none> 9d v1.24.6
Pcf01-worker-18 Ready <none> 9d v1.24.6
Pcf01-worker-19 Ready <none> 9d v1.24.6
Pcf01-worker-2 Ready <none> 9d v1.24.6
Pcf01-worker-20 Ready <none> 9d v1.24.6
Pcf01-worker-21 Ready <none> 9d v1.24.6
Pcf01-worker-22 Ready <none> 9d v1.24.6
Pcf01-worker-23 Ready <none> 9d v1.24.6
Pcf01-worker-3 Ready <none> 9d v1.24.6
Pcf01-worker-4 Ready <none> 9d v1.24.6
Pcf01-worker-5 Ready <none> 9d v1.24.6
pcf01-worker-6 Ready <none> 9d v1.24.6
pcf01-worker-7 Ready <none> 9d v1.24.6
pcf01-worker-8 Ready <none> 9d v1.24.6
pcf01-worker-9 Ready <none> 9d v1.24.6
ステップ 2:マスターVIPにログインし、pgpoolポッドを取得します。
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep -i pgpool
cee-pcf01 pgpool-65fc8b8d5f-2w9nq 0/1 Running 3173 (3m58s ago) 22d xxx.xxx.xxx.xx pcf01-master-2 <none> <n
cloud-user@pcf01-master-1:~$
ステップ 3:pgpoolポッドを削除します。
cloud-user@pcf01-master-1:~$ kubectl delete pod <pgpool pod name> -n cee-pcf
ステップ 4:新しいpgpoolポッドが正常に動作していることを確認します。
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep -i pgpool
ステップ 5:pgpoolポッドに関連するアラートがCEEオペレーションセンターでクリアされたことを確認します。
[pcf01/pcfapp] cee# show alerts active summary