configmap中data变成字符串问题(k8s踩坑)

发现问题

编写text文件,用于创建要给nginx的configmap,如下:

[root@master redis]# vim txt 
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-config
  namespace: redis
data:
  nginx.conf: |
    #user nginx;
    worker_processes  1;
    
    #error_log  /var/log/nginx/error.log warn; 
    pid        /var/run/nginx.pid;
    #

试运行,虽然能成功,但是发现数据都变成一行了,识别为字符串了,很乱,以后难以在线添加配置,难以维护:

[root@master redis]# kubectl  create -f txt  --dry-run=client -oyaml
apiVersion: v1
data:
  nginx.conf: "#user nginx;\nworker_processes  1;\n\n#error_log  /var/log/nginx/error.log
    warn; \npid        /var/run/nginx.pid;\n#\n"
kind: ConfigMap
metadata:
  name: nginx-config
  namespace: redis

问题排查

经过排查,发现是行尾多了空格导致的,我们可以这样查看:

[root@master redis]# cat -en txt 
     1	apiVersion: v1$
     2	kind: ConfigMap$
     3	metadata:$
     4	  name: nginx-config$
     5	  namespace: redis$
     6	data:$
     7	  nginx.conf: |$
     8	    #user nginx;$
     9	    worker_processes  1;$
    10	    $
    11	    #error_log  /var/log/nginx/error.log warn; $
    12	    pid        /var/run/nginx.pid;$
    13	    #$
[root@master redis]# 第11行行尾居然有空格

删除空格

[root@master redis]# cat -nE txt 		#现在查看第11行已经没有空格了
     1	apiVersion: v1$
     2	kind: ConfigMap$
     3	metadata:$
     4	  name: nginx-config$
     5	  namespace: redis$
     6	data:$
     7	  nginx.conf: |$
     8	    #user nginx;$
     9	    worker_processes  1;$
    10	    $
    11	    #error_log  /var/log/nginx/error.log warn;$
    12	    pid        /var/run/nginx.pid;$
    13	    #$
[root@master redis]# 

确认正常

现在试运行,格式终于正常了,这才是完美的格式,方便以后在线编辑配置文件:

[root@master redis-cluster-resoucr]# kubectl  create -f txt  --dry-run=client -oyaml
apiVersion: v1
data:
  nginx.conf: |
    #user nginx;
    worker_processes  1;

    #error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;
    #
kind: ConfigMap
metadata:
  name: nginx-config
  namespace: redis
[root@master redis-cluster-resoucr]# 

使用工具删除空格

经研究发现,redis官方的redis.config配置文件居然也是行末尾有空格,所以我们可以使用editplus这个工具来批量删除空格
configmap中data变成字符串问题(k8s踩坑)_第1张图片

你可能感兴趣的:(kubernetes,kubernetes,容器,云原生)