首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在dnsConfig中将节点ip设置为域名服务器?

如何在dnsConfig中将节点ip设置为域名服务器?
EN

Stack Overflow用户
提问于 2020-10-12 03:46:23
回答 1查看 428关注 0票数 5

我正在覆盖pod的dns策略,因为我面对的是pod的默认/etc/resolv.confissue。另一个问题是,由于pod的默认/etc/resolv.conf,pod无法连接到smtp服务器服务器

因此,希望应用于部署/pod的策略是:

代码语言:javascript
复制
      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服务器。

EN

回答 1

Stack Overflow用户

发布于 2020-10-13 01:38:59

dnsConfig指定了support up to 3 IP addresses,因此理论上您可以在nameservers字段中对其进行硬编码。但是,作为一种变通方法,您可以将节点ip地址作为env variable and then pass it to the pod传递。示例:

代码语言:javascript
复制
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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64308334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档