我目前正在将pod规范中的'dnsPolicy'配置设置为'Default',以便pod可以继承节点的DNS配置。
虽然这很好,但它需要重新构建/重新部署Docker容器才能使策略生效,并且它在pod级别受到限制。
是否有类似的策略可以在群集范围内应用?这样,由于群集范围的策略,将新pod部署到群集上会自动继承DNS配置节点吗?
实际上,群集范围内没有支持的方法。一个原因是你的coredns
或kube-dns
使用dnsPolicy: Default
而不是默认的dnsPolicy: ClusterFirst
,因此在整个群集中更改它可能会影响你的coredns/kube-dns
pods。
然而,有一种更复杂的方法可以与Dynamic Admission Controllers一起使用。特别是,使用MutatingAdmissionWebhook,您可以使用它来修改具有某些注释的pod具有dnsPolicy: Default
。例如,Istio使用它来注入Envoy边车。这是一个很好的document,描述了如何构建自己的MutatingAdmissionWebhook。