Kri*_*nom 4 dns kubernetes flannel kube-proxy
我正在运行一个3 节点 Kubernetes 集群,其中 Flannel 作为 CNI。我使用 kubeadm 设置集群,版本是 1.23。
我的 Pod 需要使用 DNS 地址与外部主机通信,但这些主机没有 DNS 服务器。为此,我已将它们的条目添加到集群中每个节点的 /etc/hosts 中。节点可以从 DNS 解析主机,但 Pod 无法解析它们。
我尝试通过互联网搜索这个问题,并有建议使用 HostAlias 或更新容器内的 /etc/hosts 文件。我的问题是主机列表很大,在 yaml 文件中维护列表是不可行的。
我还查看了 Kubernetes 是否有一些内置标志来让 Pod 在 Node 的 /etc/hosts 中查找条目,但找不到它。
所以我的问题是 -
也欢迎任何其他建议或解决方法。
容器中的环境应与其他容器和机器(包括其宿主机)分开,/etc/hosts 也是如此。
如果您使用 coreDNS(默认内部 DNS),您可以通过修改其 configMap 轻松添加额外的主机信息。
打开 configMapkubectl edit configmap coredns -n kube-system并编辑它,使其包含hosts以下部分:
apiVersion: v1
data:
Corefile: |
.:53 {
...
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
### Add the following section ###
hosts {
{ip1} {hostname1}
{ip2} {hostname2}
...
fallthrough
}
prometheus :9153
...
}
Run Code Online (Sandbox Code Playgroud)
该设置将在几分钟内加载,然后所有 pod 都可以解析 configMap 中描述的主机。
| 归档时间: |
|
| 查看次数: |
3461 次 |
| 最近记录: |