ConfigMap 配置错误导致pod持续处于Error状态的排查记录 遇到一个奇怪的情况。在做实验的时候 KubernetesK8s笔记Day09 configmap 4.3 章节cm正常启动启动pod也没有报错但是一看pod却是这个情况赶忙查看详细信息[roothd1 ~]# kubectl describe pod nginx虽然状态是Faild但是事件的显示也正常按步骤来吧。先看pod日志日志最后一行清晰地暴露了问题2026/08/0511:44:19[emerg]1#1: unexpected end of file, expecting ; or } in /etc/nginx/nginx.conf:1nginx:[emerg]unexpected end of file, expecting;or}in/etc/nginx/nginx.conf:1大致意思是Nginx 在启动时读取 /etc/nginx/nginx.conf 文件发现第 1 行:1出现了语法错误——文件内容不完整或格式被破坏导致 Nginx 无法解析并直接崩溃退出状态码变为 Error经过排查发现是我的configmap文件写错了我的文件apiVersion:v1kind:ConfigMapmetadata:name:nginx-cmlabels:app:nginxdata:nginx.conf:./nginx.conf配置中的./nginx.conf 是一个文件的路径。但是configmap的yaml文件不能引入文件路径只能引入文件内容修改一下这才是正确的cm yaml文件引入内容的配置apiVersion: v1 kind: ConfigMap metadata: name: nginx-cm labels: app: nginx data: nginx.conf:|# 注意这里的竖线和缩进user nginx;worker_processes auto;events{worker_connections1024;}http{include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout65;server{listen800;server_name www.a.com;location /{root /usr/share/nginx/html;index index.html index.htm;}}}先删除配置错误的cm[roothd1 ~]# kubectl delete -f my_nginx.yamlconfigmapnginx-cmdeleted再删除错误的pod[roothd1 ~]# kubectl delete pod nginxpodnginxdeleted接下来我们再进行创建就行了[roothd1 ~]# kubectl apply -f my_nginx.yamlconfigmap/nginx-cm created[roothd1 ~]# kubectl apply -f nginx_cm.yamlpod/nginx created再次查看pod情况[roothd1 ~]# kubectl get podNAME READY STATUS RESTARTS AGE nginx1/1 Running032s这个pod已经创建成功总结这次排错让我深入学习到configmap的一些特性ConfigMap 的 YAML 文件中的data字段只能接受直接的键值对数据不能通过文件路径引用的方式来加载内容。因此想要将整个文件的内容直接导入 ConfigMap最便捷的方式就是使用kubectl create configmap命令行的--from-file参数简单说就是ConfigMap的yaml不能引入文件路径只能引入文件内容想要直接导入整个文件最好用命令行的方式创建cm