简介
本文档介绍恢复持续重新启动的Grafana Pod的解决方法。
先决条件
要求
Cisco 建议您了解以下主题:
- 思科用户微服务基础设施(SMI)超云核心通用执行环境(CEE)
- 5G云本地部署平台(CNDP)或SMI裸机(BM)架构
- 多克斯和库伯内特斯
使用的组件
本文档中的信息基于以下软件和硬件版本:
- SMI 2020.02.2.35
- 库贝内特斯v1.21.0
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
什么是SMI?
思科SMI是云技术和标准的分层堆栈,支持来自思科移动、电缆和宽带网络网关(BNG)业务单元的基于微服务的应用。这些应用具有类似的用户管理功能和类似的datastore要求。
Attributes:
- 层云堆栈(技术和标准)提供自上而下的部署并适应当前云基础设施。
- 所有应用共享中东欧非应用功能(数据存储、部署、配置、遥测、报警),为所有客户触点和集成点提供一致的交互和体验。
- 应用和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是几个中东欧地区的伙伴。
什么是格拉法纳荚?
Grafana Pod可以通过名为Prometheus的Prometheus服务与Prometheus Pod通信,并可以访问。
什么是Postgres Pod?
Postgres支持SQL数据库,该数据库具有存储警报和Grafana控制面板的冗余。
问题
Grafana Pod定期重新启动,而Postgres Pod运行时没有问题。
要恢复,请使用以下命令手动删除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 Pod所衍生的节点。
在本例中,所有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
注意:有时文件夹 "/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 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"