排查部署问题
总结 本主题提供有关如何使用 Kubernetes 命令排查部署问题以及如何查看云原生路由器配置文件的信息。
排查部署问题
本主题提供有关在部署云原生路由器组件期间可能出现的一些问题的信息,并提供许多在主机服务器上运行的 Kubernetes (K8s) 和 shell 命令,以帮助确定部署问题的原因。
潜在问题 | 检查内容 | 相关命令 |
---|---|---|
未找到图像 | 使用命令 docker images 检查映像是否已上传到本地 docker 。如果没有,则中 values.yaml 配置的注册表应该是可访问的。确保图片标签正确无误。 |
|
初始化错误 | 检查 jcnr-secrets 是否已加载并具有有效的许可证密钥 | [root@jcnr-01]# kubectl get secrets -n jcnr NAME TYPE DATA AGE crpd-token-zp8kc kubernetes.io/service-account-token 3 29d default-token-zn6p9 kubernetes.io/service-account-token 3 29d jcnr-secrets Opaque 2 29d确认 root 密码和许可证密钥存在于 /var/run/jcnr/juniper.conf |
cRPD Pod 处于 CrashLoopBackOff 状态 |
|
|
处于 CrashLoopBackOff 状态的 vRouter Pod |
检查 contail-k8s-deployer Pod 是否有错误 | kubectl logs contrail-k8s-deployer-<pod-hash> -n contrail-deploy |
验证云原生路由器控制器配置
云原生路由器部署过程会根据 L2 模式的 values.yaml 文件中的条目以及 L3 模式下通过节点注释进行的自定义配置,为云原生路由器控制器 (cRPD) 创建配置文件。您可以查看此配置文件以查看 cRPD 配置的详细信息。要查看 cRPD 配置,请导航到 /var/run/jcnr
文件夹以访问配置文件详细信息并查看配置文件的内容。
[root@jcnr-01]# ls cni config containers envars juniper.conf reboot-canary [root@jcnr-01]# cat juniper.conf
cRPD 配置可以使用节点注释进行自定义。如果应用的配置无效,cRPD Pod 将保持状态 pending
。
您可以在目录中查看呈现的自定义配置 /etc/crpd/
。
[root@jcnr-01]# cat /etc/crpd/juniper.conf.master
在 AWS EKS 部署中,您可以通过 访问 cRPD CLI 并查看目录的内容 /config
来查看呈现的自定义配置。
查看日志文件
您可以在缺省log_path目录 /var/log/jcnr/ 中查看 jcnr 日志文件。在部署之前,可以通过更改 values.yaml 文件中的 log_path: 或 syslog_notifications: 键的值来更改日志文件的位置。
导航到以下路径并发出命令以 ls
列出每个云原生路由器组件的日志文件。
cd /var/log/jcnr/
[root@jcnr-01 jcnr]# ls action.log contrail-vrouter-dpdk-init.log filter l2cos.log __policy_names_rpdc__ contrail-vrouter-agent.log contrail-vrouter-dpdk.log filter.log license mgd-api __policy_names_rpdn__ cos jcnr-cni.log messages mosquitto vrouter-kernel-init.log cscript.log jcnr_notifications.json messages.0.gz na-grpcd
卸载问题
触发 helm 卸载命令后,请等待所有 Kubernetes 资源完全删除后再尝试重新安装。过早重新安装可能会导致安装停止,可能需要手动步骤进行恢复。下面提供了恢复步骤:
helm uninstall jcnr –no-hooks kubectl delete <ds/name> kubectl delete <job/jobname> kubectl delete ns jcnrops