簡介
本文檔描述了恢復連續重新啟動的Grafana Pod的解決方法。
必要條件
需求
思科建議您瞭解以下主題:
- 思科使用者微服務基礎架構(SMI)Ultra雲核心通用執行環境(CEE)
- 5G雲原生部署平台(CNDP)或SMI裸機(BM)架構
- 道克斯和庫伯內特
採用元件
本文中的資訊係根據以下軟體和硬體版本:
- SMI 2020.02.2.35
- Kubernetes v1.21.0
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
什麼是SMI?
Cisco SMI是雲技術和標準的分層堆疊,支援來自思科移動性、電纜和寬頻網路網關(BNG)業務部門的基於微服務的應用。這些應用程式具有相似的使用者管理功能和相似的資料儲存要求。
屬性:
- 層雲堆疊(技術和標準)提供自上而下的部署,並適應當前的雲基礎設施。
- 所有應用程式共用非應用程式功能(資料儲存、部署、配置、遙測、警報)的CEE,為所有客戶觸控點和整合點提供一致的互動和體驗。
- 應用和CEE部署在微服務容器中,並與智慧服務網狀網連線。
- 用於部署、配置和管理的API可實現自動化。
什麼是SMI CEE?
- CEE是一種軟體解決方案,開發目的是監控部署在SMI上的移動和電纜應用程式。CEE以集中方式從應用程式捕獲資訊(關鍵指標),以便工程師進行調試和故障排除。
- CEE是為所有應用程式安裝的常用工具集。它配備了專用的運營中心,可提供命令列介面(CLI)和API來管理監控工具。每個集群只能有一個CEE。
什麼是CEE Pod?
- Pod是在您的Kubernetes群集上運行的進程。容器封裝著稱為容器的顆粒狀單元。容器包含一個或多個容器。
- Kubernetes在單個節點上部署一個或多個Pod,該節點可以是物理或虛擬機器。每個Pod具有獨立的身份,具有內部IP地址和埠空間。但是,Pod中的容器可以共用儲存和網路資源。CEE擁有許多具有獨特功能的模組。Grafana和Postgress是幾個CEE平台之一。
什麼是Grafana Pod?
格拉法納艙可以通過名為Prometheus的Prometheus服務與Prometheus艙通訊。
什麼是Postgres Pod?
Postgres支援具有冗餘的SQL資料庫以儲存警報和Grafana儀表板。
問題
格拉法納艙會定期復工,而Postgres艙則毫無問題地運行。
要恢復,請使用此命令手動刪除Grafana pod:
kubectl delete pod -n
刪除後,Grafana pod會重新建立並重新啟動。
如果問題仍然存在,請使用以下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 Pod的資料庫資料夾
檢查以檢視Postgres池生成的節點。
在本例中,所有Postgres pods都會在「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建立資料夾:
/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
附註:在某些情況下,可以在不同的節點上建立資料夾,如master-1、master-2、master-3等"/data//postgres<0,1,2>"。
恢復CEE
登入到Ops Center以恢復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 pod和其他pod的狀態:
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
所有Pod應顯示UP和RUNNING,且無任何重新啟動。
驗證是否已從CEE清除警報
運行以下命令以確認警報是否已從CEE清除:
[pod-name-smf/podname] cee# show alerts active summary | include "POD_Res|k8s_grafana"