kubernetes configmap 的data中的文件内容格式错乱

截取一段错乱的配置:

kubectl -n monitoring get cm blackbox-exporter-configuration  -o yaml
apiVersion: v1
data:
  config.yml: "\"modules\":\n  \"http_2xx\":\n    \"http\":\n      \"preferred_ip_protocol\":
    \"ip4\"\n    \"prober\": \"http\"\n  \"http_post_2xx\":\n    \"http\":\n      \"method\":
    \"POST\"\n      \"preferred_ip_protocol\": \"ip4\"\n    \"prober\": \"http\"\n
    \ \"http_basic_auth_example\":\n    \"prober\": http\n    \"timeout\" 5s\n    \"http\":\n
    \     \"method\": \"POST\"\n      \"preferred_ip_protocol\": \"ip4\"\n    \"headers\":\n
    \      \"Host\": \"127.0.0.1\"\n    \"basic_auth\":\n       \"username\":
    \"admin\"\n       \"password\": \"Cyc12345\"           \n  \"irc_banner\":\n    \"prober\":
    \"tcp\"\n    \"tcp\":\n      \"preferred_ip_protocol\": \"ip4\"\n      \"query_response\":\n
    \     - \"send\": \"NICK prober\"\n      - \"send\": \"USER prober prober prober
    :prober\"\n      - \"expect\": \"PING :([^ ]+)\"\n        \"send\": \"PONG ${1}\"\n
    \     - \"expect\": \"^:[^ ]+ 001\"\n  \"pop3s_banner\":\n    \"prober\": \"tcp\"\n
    \   \"tcp\":\n      \"preferred_ip_protocol\": \"ip4\"\n      \"query_response\":\n
    \     - \"expect\": \"^+OK\"\n      \"tls\": true\n      \"tls_config\":\n        \"insecure_skip_verify\":
    false\n  \"ssh_banner\":\n    \"prober\": \"tcp\"\n    \"tcp\":\n      \"preferred_ip_protocol\":
    \"ip4\"\n      \"query_response\":\n      - \"expect\": \"^SSH-2.0-\"\n  \"tcp_connect\":\n
    \   \"prober\": \"tcp\"\n    \"tcp\":\n      \"preferred_ip_protocol\": \"ip4\"\n
    \ \"icmp_example\":\n     \"prober\": \"icmp\"\n     \"timeout\": \"5s\"\n     \"icmp\":\n
    \       \"preferred_ip_protocol\": \"ip4\""
kind: ConfigMap

可能是由于配置文件文件自身存在制表符TAB或者空格,Kubernetes ConfigMap在load过程中发现文件中包含tab缩进,直接转化为\n\t。

# 使用以下方法删除尾随空格
sed -i -E 's/[[:space:]]+$//g' file.txt
# 使用空格替换制表符
sed -i 's/\t/    /g' file.txt

删除原有的重新生成configmap

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