使用Kubernetes YAML文件无法创建Pod及LoadBalancer的问题
Kubernetes部署问题排查与修复方案
1. 修正ConfigMap的API版本错误
ConfigMap属于Kubernetes核心资源,正确的apiVersion是v1,而非apps/v1。找到YAML中ConfigMap对应的段落,把apiVersion: apps/v1改成apiVersion: v1。
2. 修复YAML语法错误(第5行映射值不允许)
这个错误是YAML格式违规导致的,常见触发场景:
- 键值对的冒号后没加空格,比如
key:value要改成key: value - 含特殊字符(冒号、空格、引号)的字符串没加双引号包裹
- 缩进不规范(YAML要求用2个空格缩进,不能混tab)
直接检查YAML第5行的内容,修正格式问题。
3. 修正Deployment的结构错误
Deployment的定义有严格层级,你现在的问题是把Pod的配置直接放到了Deployment的spec下,正确的结构应该是:
apiVersion: apps/v1 kind: Deployment metadata: name: applicare-deployment namespace: applicare spec: replicas: 1 selector: matchLabels: app: applicare template: # 必须通过template嵌套Pod模板 metadata: labels: app: applicare spec: # 这个spec才是Pod的配置层,包含containers和volumes containers: - name: applicare-container image: 你的镜像地址:标签 volumes: - name: applicare-volume configMap: name: applicare-config
把containers和volumes字段移动到spec.template.spec下面,不要直接放在Deployment的spec下。
4. 恢复Deployment的正确API版本
Deployment的标准apiVersion是apps/v1,改成v1会导致资源无法识别,改回apps/v1即可。
验证修复
修正所有问题后,重新执行部署命令:
kubectl apply -f Applicare.yaml -n applicare
内容的提问来源于stack exchange,提问作者anandarc
相关产品推荐
相关产品推荐

