概要
このドキュメントでは、継続的に再起動するGrafanaポッドを回復するための回避策について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Cisco Subscriber Microservices Infrastructure(SMI)Ultra Cloud Core Common Execution Environment(CEE)
- 5G Cloud Native Deployment Platform(CNDP)またはSMIベアメタル(BM)アーキテクチャ
- ドッカーとクベルネテス
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- SMI 2020.02.2.35
- クベルネテスv1.21.0
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
SMIとは
Cisco SMIは、Cisco Mobility、Cable、およびBroadband Network Gateway(BNG)ビジネスユニットからマイクロサービスベースのアプリケーションを可能にする、クラウドテクノロジーと標準の階層型スタックです。これらのアプリケーションには、同様の加入者管理機能と類似のデータストア要件があります。
属性:
- Layer Cloud Stack(テクノロジーおよび標準)は、トップツーボトムデプロイメントを提供し、現在のクラウドインフラストラクチャに対応します。
- すべてのアプリケーションが非アプリケーション機能(データストレージ、導入、設定、テレメトリ、アラーム)のCEEを共有し、すべての顧客のタッチポイントと統合ポイントに一貫したインタラクションとエクスペリエンスを提供します。
- アプリケーションとCEEは、マイクロサービスコンテナに導入され、インテリジェントサービスメッシュに接続されます。
- 展開、設定、および管理のための公開APIにより、自動化が可能になります。
SMI CEEとは何ですか。
- CEEは、SMIに導入されているモバイルおよびケーブルアプリケーションを監視するために開発されたソフトウェアソリューションです。CEEは、エンジニアがデバッグおよびトラブルシューティングを行うために、アプリケーションから情報(主要なメトリック)を一元的に取得します。
- CEEは、すべてのアプリケーションにインストールされる共通のツールセットです。専用のオペレーションセンターが付属しており、コマンドラインインターフェイス(CLI)とモニタツールを管理するためのAPIを提供します。各クラスタで使用できるCEEは1つだけです。
CEEポッドとは
- ポッドは、Kubernetesクラスタで実行されるプロセスです。ポッドは、コンテナと呼ばれる細かい単位をカプセル化します。ポッドには1つまたは複数のコンテナが含まれます。
- Kubernetesは、1つのノードに1つまたは複数のポッドを導入します。これは、物理マシンまたは仮想マシンにすることができます。各ポッドには、内部IPアドレスとポート空間を持つ個別のIDがあります。ただし、ポッド内のコンテナは、ストレージとネットワークリソースを共有できます。CEEには、固有の機能を持つ多数のポッドがあります。GrafanaとPostgressは複数のCEEポッドの間にあります。
Grafana Podとは何ですか。
Grafanaポッドは、Prometheusという名前のPrometheusサービスを介してアクセスできるPrometheusポッドと通信できます。
Postgres Podとは何ですか。
Postgresは、アラートとGrafanaダッシュボードを保存するための冗長性を備えたSQLデータベースをサポートしています。
問題
Grafanaポッドが定期的に再起動し、Postgresポッドは問題なく動作します。
回復するには、次のコマンドを使用してGrafanaポッドを手動で削除します。
kubectl delete pod
-n
削除されると、Grafanaポッドが再作成され、再起動されます。
問題が解決しない場合は、次のCLIコマンドを使用して、CEEからサンプルアラートを取得し、問題を特定します。
[pod-name-smf/podname] cee# show alerts active summary | include "POD_Res|k8s_grafana"
例:
[pod-name-smf/podname] cee# show alerts active summary | include "POD_Res|k8s_grafana"
Time Alert Name Description Port Access ID NEState Severity Alert Source
16:26 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_883 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
16:23 PCF_k8s-pod-crashing-loop " "Processing Error Alarm"} " "Pod cee-dnrce301/grafana-59768df649-n6x6x (grafana) is restarting 1.03 times / 5 minutes." InService Critical NETX
16:20 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_882 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
16:14 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_881 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
16:08 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_880 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
16:02 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_879 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
15:56 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_878 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
15:53 PCF_k8s-pod-crashing-loop " "Processing Error Alarm"} " "Pod cee-dnrce301/grafana-59768df649-n6x6x (grafana) is restarting 1.03 times / 5 minutes." InService Critical NETX
回避策
CEEのシャットダウン
シャットダウンするには、CEEから次のコマンドを実行します。
[pod-name-smf/podname] cee# conf
Entering configuration mode terminal
[pod-name-smf/podname] cee(config)# system mode shutdown
[pod-name-smf/podname] cee(config)# commit
Commit complete.
[pod-name-smf/podname] cee(config)# end
システムが100 %に達するのを待ちます。
Postgres PodsのDBフォルダの削除
Postgresポッドが生成されたノードを確認します。
この例では、すべてのPostgresポッドが「master-1」で生成されます。
cloud-user@dnup0300-aio-1-master-1:~$ kubectl get pods -n cee-dnrce301 -o wide | grep postgres
postgres-0 1/1 Running 0 35d 10.108.50.28 dnup0300-aio-1-master-1 <none> <none>
postgres-1 1/1 Running 0 35d 10.108.50.47 dnup0300-aio-1-master-1 <none> <none>
postgres-2 1/1 Running 0 35d 10.108.50.102 dnup0300-aio-1-master-1 <none> <none>
このパス内の各Postgresに対して、DBを保存するフォルダがノードに作成されます。
/data/<cee-namespace>/postgres<0,1,2>
次のように、これらのフォルダを削除します。
cloud-user@dnup0300-aio-1-master-1:/data/cee-dnrce301$ sudo rm -rf data-postgres-0
cloud-user@dnup0300-aio-1-master-1:/data/cee-dnrce301$ sudo rm -rf data-postgres-1
cloud-user@dnup0300-aio-1-master-1:/data/cee-dnrce301$ sudo rm -rf data-postgres-2
注:フォルダが "/data/
/postgres<0,1,2>"
master-1、master-2、master-3などのさまざまなノードに作成されます。
CEEの復元
オペレーションセンターにログインしてCEEを復元し、次のCLIコマンドを実行します。
[pod-name-smf/podname] cee# conf
Entering configuration mode terminal
[pod-name-smf/podname] cee(config)# system mode running
[pod-name-smf/podname] cee(config)# commit
Commit complete.
[pod-name-smf/podname] cee(config)# end
[pod-name-smf/podname] cee# exit
システムが100 %に達するのを待ちます。
小切手の転記
マスターからのKubernetesの確認
次のコマンドを実行して、Grafanaポッドおよびその他のポッドのステータスを確認します。
cloud-user@pod-name-smf-master-1:~$ kubectl get pods -A -o wide | grep grafana
cloud-user@pod-name-smf-master-1:~$ kubectl get pods -A -o wide
すべてのポッドが再起動せずにUPとRUNNINGと表示されるはずです。
CEEからアラートがクリアされることを確認する
次のコマンドを実行して、アラートがCEEからクリアされたことを確認します。
[pod-name-smf/podname] cee# show alerts active summary | include "POD_Res|k8s_grafana"