gpt4 book ai didi

kubernetes - 如何在 dnsConfig 中将节点 ip 设置为名称服务器?

转载 作者:行者123 更新时间:2023-12-02 11:30:24 27 4
gpt4 key购买 nike

因为我面临着 issue,所以我覆盖了 pod 的 dns 策略默认 /etc/resolv.conf pod 的。另一个问题是由于默认 /etc/resolv.conf,pod 无法连接到 smtp 服务器服务器。 pod 的
因此,需要应用于部署/pod 的 dnspolicy 是:

      dnsConfig:
nameservers:
- <ip-of-the-node>
options:
- name: ndots
value: '5'
searches:
- monitoring.svc.cluster.local
- svc.cluster.local
- cluster.local
dnsPolicy: None
在上面的配置中 nameservers需要是部署 pod 的节点的 IP。由于我有三个工作节点,我无法将值硬编码到特定工作节点的 IP。我不希望将 pod 配置为部署到特定节点,因为如果资源不足以让 pod 部署到特定节点,则 pod 可能会保持挂起状态。
我该如何制作 nameservers获取部署 pod 的节点的 IP 地址的值?
或者是否可以更新 nameservers使用某种通用参数,以便 pod 能够连接到 smtp 服务器。

最佳答案

dnsConfig support up to 3 IP addresses如此指定,理论上您可以在 nameservers 中对其进行硬编码 field 。但是,作为一种解决方法,您可以将节点 IP 地址作为 env variable and then pass it to the pod 传递。 .例子:

spec:
containers:
- name: envar-demo-container
command: ["/bin/sh"]
args: ["-c", "printenv NODE_IP >> /etc/resolv.conf"]
image: nginx
env:
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
fieldPath: status.hostIP获取部署 pod 的节点的 IP 地址并将其保存为环境变量。然后写入 /etc/resolv.conf .

关于kubernetes - 如何在 dnsConfig 中将节点 ip 设置为名称服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64308334/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com