使用 kubectl patch 将 DNS Rewrite Rule 添加到 CoreDNS Configmap
Use kubectl patch to add DNS Rewrite Rule to CoreDNS Configmap
我想使用 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
修改 ConfigMap。
data.Corefile
是一个键,它的值(Corefile 内容)的类型是:string
.
它被api-server当作一串字节。您不能使用 kubectl patch 修补字符串的一部分。
其次:
I want to expand my knowledge of kubctl patch using JSON
Corefile 甚至不是有效的 json 文件。即使是,api-server 也看不到 json/yaml,因为 api-server 它只是一串随机的字母数字字符。
那你能做什么?
您还剩下 kubectl get ... | sed ... | kubectl replace -f -
,这是一个完全有效的解决方案。
我想使用 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
修改 ConfigMap。
data.Corefile
是一个键,它的值(Corefile 内容)的类型是:string
.
它被api-server当作一串字节。您不能使用 kubectl patch 修补字符串的一部分。
其次:
I want to expand my knowledge of kubctl patch using JSON
Corefile 甚至不是有效的 json 文件。即使是,api-server 也看不到 json/yaml,因为 api-server 它只是一串随机的字母数字字符。
那你能做什么?
您还剩下 kubectl get ... | sed ... | kubectl replace -f -
,这是一个完全有效的解决方案。