简介
本文档介绍恢复连续重新启动的Grafana Pod的解决方法。
先决条件
要求
Cisco 建议您了解以下主题:
- 思科用户微服务基础设施(SMI)超云核心通用执行环境(CEE)
- 5G云原生部署平台(CNDP)或SMI裸机(BM)架构
- 多克和库伯内特
使用的组件
本文档中的信息基于以下软件和硬件版本:
- SMI 2020.02.2.35
- Kubernetes v1.21.0
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
什么是SMI?
Cisco SMI是云技术和标准的分层堆栈,支持来自思科移动性、电缆和宽带网络网关(BNG)业务部门的基于微服务的应用。这些应用具有相似的用户管理功能和相似的datastore要求。
Attributes:
- 层云堆栈(技术和标准)提供自上而下的部署,并适应当前的云基础设施。
- 所有应用共享非应用功能(数据存储、部署、配置、遥测、警报)的CEE,为所有客户触点和集成点提供一致的交互和体验。
- 应用和CEE部署在微服务容器中,并与智能服务网状网连接。
- 用于部署、配置和管理的可公开API可实现自动化。
什么是SMI CEE?
- CEE是一种软件解决方案,用于监控部署在SMI上的移动和有线应用。CEE以集中方式从应用捕获信息(关键指标),以便工程师进行调试和故障排除。
- CEE是为所有应用安装的常用工具集。它配备了一个专用运行中心,可提供命令行界面(CLI)和API来管理监控工具。每个集群只能有一个CEE。
什么是CEE Pod?
- Pod是在您的Kubernetes群集中运行的进程。Pod封装了一个称为容器的粒状单元。Pod包含一个或多个容器。
- Kubernetes在单个节点(可以是物理或虚拟机)上部署一个或多个Pod。每个Pod都有一个独立的身份,具有内部IP地址和端口空间。但是,Pod中的容器可以共享存储和网络资源。CEE具有许多具有独特功能的pod。Grafana和Postgress是几个CEE Pod之一。
什么是Grafana Pod?
Grafana pod可以通过名为Prometheus的Prometheus服务与Prometheus pod通信,并可访问。
什么是Postgres Pod?
Postgres支持具有冗余的SQL数据库,以存储警报和Grafana仪表板。
问题
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运行以下命令以关闭:
[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 Pod都在“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
登录运营中心以恢复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"