【问题标题】:Use kubectl patch to add DNS Rewrite Rule to CoreDNS Configmap使用 kubectl patch 将 DNS Rewrite Rule 添加到 CoreDNS Configmap
【发布时间】:2021-01-01 20:42:28
【问题描述】:

我想使用kubectl patch 命令将 DNS 重写规则添加到 coredns 配置映射,如Custom DNS Entries For Kubernetes 中所述。默认配置映射如下所示:

apiVersion: v1
data:
  Corefile: |
    .:53 {
        log
        errors
        health
        kubernetes cluster.local in-addr.arpa ip6.arpa {
           pods insecure
           upstream
           fallthrough in-addr.arpa ip6.arpa
           ttl 30
        }
        prometheus :9153
        forward . /etc/resolv.conf
        cache 30
        loop
        reload
        loadbalance
    }
kind: ConfigMap
....

我想添加一行

rewrite name old.name new.name

但是如何指定在“.:53”元素中添加一行让我很困惑。

我知道我可以使用kubectl get ... | sed ... | kubectl replace -f - 获得类似的结果,但这看起来有点难看,而且我想使用 JSON 扩展我对kubctl patch 的了解。谢谢!

【问题讨论】:

    标签: patch kubectl configmap coredns


    【解决方案1】:

    在您的情况下,您不能使用 patch 修改 ConfigMap。

    data.Corefile 是一个键,其值(核心文件内容)的类型为:string

    它被 api-server 视为一个字节串。您不能使用 kubectl patch 修补字符串的一部分。

    其次:

    我想扩展我对使用 JSON 的 kubctl 补丁的了解

    Corefile 甚至不是一个有效的 json 文件。即使是这样,api-server 也看不到 json/yaml,对于 api-server 它只是一串随机的字母数字字符。


    那你能做什么?

    你只剩下kubectl get ... | sed ... | kubectl replace -f - ,这是一个完全有效的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-04
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多