给 Kubernetes 集群新增外部 DNS 服务

2023年 1月 4日 27.5k 0

1. 给主机添加 DNS

1.1 CentOS

第一种方法: /etc/resolv.conf 管理 DNS

  • 禁用 NetworkManager
  • 如果不禁用 NetworkManager,在重启 NetworkManager 组件之后,直接在 /etc/resolv.conf 中添加的 DNS 记录会丢失。

    1
    2
    3
    4
    
    vim /etc/NetworkManager/NetworkManager.conf
    
    [main]
    dns=none
    

    [main] 部分添加 dns=none

  • 此时重启 NetworkManager,对已经添加到 /etc/resolv.conf 的记录无影响
  • 1
    
    systemctl restart network 
    

    第二种方式: NetworkManager 管理 DNS

  • 查看本地网络
  • 1
    2
    3
    4
    5
    6
    
    nmcli connection show
    
    NAME             UUID                                  TYPE      DEVICE          
    ens192           03da7500-2101-c722-2438-d0d006c28c73  ethernet  ens192          
    br-006fb59057ed  07e61d55-0c2e-4d63-bba9-52854cf9ad75  bridge    br-006fb59057ed 
    virbr0           ff8cf6fe-0613-4ba8-ac32-0afd2c6044b6  bridge    virbr0   
    
  • 修改 NetworkManager 网卡配置文件
  • 获取到本地网卡名为 ens192 之后,即可编辑该网卡的配置文件,添加 DNS。

    1
    2
    3
    4
    5
    
    vim /etc/sysconfig/network-scripts/ifcfg-ens192
    
    #添加
    DNS1=119.29.29.29
    DNS2=2114.114.114.114
    
  • 重启 NetworkManager 生成配置文件
  • 需要注意的是,此时在 /etc/resolv.conf 文件中的 DNS 记录会被清理掉,请注意备份。

    1
    
    cp /etc/resolv.conf /etc/resolv.conf.backup-$(date +%Y%m%d-%H%M%S)
    
    1
    
    systemctl restart network 
    
  • 查看生成的 /etc/resolv.conf 文件
  • 1
    2
    3
    4
    5
    
    cat /etc/resolv.conf
    
    # Generated by NetworkManager
    nameserver 119.29.29.29
    nameserver 114.114.114.114
    

    1.2 Ubuntu

    由于 resolv.conf 是自动生成的,需要改 resolved.conf 才行。

    1
    2
    3
    4
    5
    
    vim /etc/systemd/resolved.conf
    
    [Resolve]
    DNS=114.114.114.114
    DNS=8.8.8.8
    

    接着重启 resolve 服务。

    1
    
    systemctl restart systemd-resolved.service
    

    最后,还可以确认下配置是否生效。

    1
    
    systemd-resolve --status
    

    2. 重启 Nodelocaldns

    在 Pod 中发起外部请求时,解析逻辑是 nodelocaldns -> 节点配置的 DNS -> 返回 IP。

    1
    
    kubectl -n kube-system rollout restart ds nodelocaldns
    

    3. 参考

    • Kubernetes 中的 DNS 服务

    相关文章

    KubeSphere 部署向量数据库 Milvus 实战指南
    探索 Kubernetes 持久化存储之 Longhorn 初窥门径
    征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
    那些年在 Terraform 上吃到的糖和踩过的坑
    无需 Kubernetes 测试 Kubernetes 网络实现
    Kubernetes v1.31 中的移除和主要变更

    发布评论