云容器引擎 CCE-通过DNS Endpoint做级联解析:操作步骤

时间:2023-11-01 16:18:15

操作步骤

  1. 在CCE集群所在VPC创建 DNS Endpoint。

    1. 登录VPCEP控制台
    2. 单击右上角“购买终端节点”
    3. 选择DNS服务和VPC,注意此处VPC需要选择CCE集群所在VPC。
      图1 创建DNS Endpoint
    4. 单击“立即购买”,完成创建。

      创建完成后,可在详情页中查看到DNS Endpoint的IP地址,如下图所示。

      图2 DNS Endpoint的IP地址

  2. 在IDC的域名解析服务器上做级联配置。

    此处配置跟具体域名解析服务器相关,不同域名解析服务器的配置方法不同,请根据实际情况配置。

    这里使用BIND软件(一个常用的域名解析服务器软件)为例进行说明。

    域名解析服务器上配置的关键是将需要解析华为云内部域名的任务转发给上一步创建的DNS Endpoint。

    例如BIND中可以修改/etc/named.conf文件,将域名解析任务转发给DNS Endpoint,如下所示,添加如下两行,将转发解析转发到DNS Endpoint的地址,其中192.168.0.203为1创建的DNS Endpoint的地址。
    options {        listen-on port 53 { any; };        listen-on-v6 port 53 { ::1; };        directory       "/var/named";        dump-file       "/var/named/data/cache_dump.db";        statistics-file "/var/named/data/named_stats.txt";        memstatistics-file "/var/named/data/named_mem_stats.txt";        recursing-file  "/var/named/data/named.recursing";        secroots-file   "/var/named/data/named.secroots";        allow-query     { any; };        forward first;        forwarders { 192.168.0.203; };                .....};

  3. 修改CCE集群Node节点的DNS配置。

    修改Node节点的DNS有如下两种方法。

    方法一:

    在Node节点创建完成后,修改节点的DNS配置。
    1. 登录CCE集群的Node节点。
    2. 修改/etc/resolv.conf文件,修改nameserver的地址为IDC的域名解析服务器地址。
      # vi /etc/resolv.confnameserver 10.0.0.190
    3. 执行如下命令锁定resolv.conf文件,防止被华为云自动更新。

      chattr +i /etc/resolv.conf

      更详细的配置DNS步骤可以参考配置DNS

    方法二:

    修改CCE集群所在的VPC子网的DNS配置,这样新创建的Node节点的/etc/resolv.conf文件中会直接刷新成指定的域名解析服务器地址。

    此方法需要确保节点能够正常使用IDC的域名解析服务器解析华为云内网域名,否则会导致节点无法创建。建议在调试无问题后再修改VPC子网的DNS配置。

    图3 子网的DNS配置

  4. 配置工作负载的DNS Policy。

    创建工作负载时,容器中的域名解析可以在YAML中配置dnsPolicy为ClusterFirst,如下所示。Kubernetes默认也是将dnsPolicy设置为ClusterFirst,如此处不做配置,Kubernetes也是默认设置为ClusterFirst。工作负载的DNS详细配置可以参考DNS配置说明
    apiVersion: v1kind: Podmetadata:  namespace: default  name: dns-examplespec:  containers:  - name: test    image: nginx  dnsPolicy: ClusterFirst

support.huaweicloud.com/bestpractice-cce/cce_bestpractice_00279.html