k8s排错(一)

  • 2020-01-08
  • 53
  • 0

今天部署k8s应用时,一直遇到一个问题:

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx
  namespace: prod
data:
  default.conf: |
    server {
      listen       80;
      server_name  localhost;
      location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
        charset utf-8,gbk;
      }
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
        root   /usr/share/nginx/html;
      }
    } 
---
apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: prod
  labels:
    app: nginx
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: http
    nodePort: 12227
  type: NodePort
  selector:
    app: nginx
---
...

由于部署文件较长,我截取了一段.

部署的时候,反复报错:

root@k8s07: kubectl apply -f nginx.yaml 
configmap/nginx unchanged
error: error parsing nginx.yaml: error converting YAML to JSON: yaml: line 15: could not find expected ':'

一看是15行, 以为是空格问题.

上下都仔细查找,没发现问题.

后来发现,在 Service段,有问题.

我去,这坑…有点大.

总结:

k8s如果配置文件集中,使用 ---做分段的时候,每一段,对k8s来说都是一个新的脚本段,从1开始重新记行数.并不是以文本为主,而是以具体的apiVersion段为主.

0

评论

还没有任何评论,你来说两句吧