赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 分布式云容器平台ACK One
  4. 操作指南
  5. 注册集群
  6. 接入云上Serverless算力
  7. ACS算力
  8. ACS算力高级配置
  9. 为ACS Pod配置自定义DNS

为ACS Pod配置自定义DNS

  • ACS算力高级配置
  • 发布于 2025-04-18
  • 0 次阅读
文档编辑
文档编辑

如果您需要使用自建DNS服务来解析镜像仓库以及其他应用的域名,需要将ACS Pod使用的DNS配置为您自建的DNS服务器。本文介绍如何为ACS Pod配置自定义DNS。

适用范围

以下3种情况可以通过Annotation配置自定义DNS:

  • 场景一:使用DefaultDNS策略,并且希望在集群层面通过eci-profile统一做自定义DNS配置。

  • 场景二:使用ClusterFirstDNS策略,同时需要从自建DNS服务器解析镜像仓库的域名,用于拉取镜像。

  • 场景三:使用DefaultDNS策略,并且希望在集群层面通过eci-profile统一做自定义DNS配置, 同时需要从自建DNS服务器解析镜像仓库的域名,用于拉取镜像。

不适用范围:

  • 希望使用云解析的DNS服务器域名来解析包括应用层的解析以及镜像仓库域名的解析。推荐直接使用DefaultDNS策略, 不需要额外自定义DNS。

  • 希望使用自建DNS服务解析域名, 但是仍然希望使用云解析的DNS服务器来做镜像拉取时的镜像仓库域名的解析,同时希望在应用层面做单独的自定义DNS配置。推荐使用NoneDNS策略, 通过Pod Spec中的dnsConfig字段来设置自建DNS服务器。 具体操作,请参见场景二:Pod层面自定义DNS配置。

配置说明

重要

以下内容仅为了演示Annotation的使用方法。在实际应用场景中,一般不会单独在Pod和Deployment上通过Annotation来配置自定义DNS, 而是通过eci-profile等机制在集群层面统一配置。

您可以在Pod metadata中添加network.alibabacloud.com/custom-dnsconfig的Annotation来指定ACS Pod使用自定义DNS。该Annotation的取值格式为标准Kubernetes spec.dnsConfig结构{"servers":["20.1.xx.xx","30.1.xx.xx"],"searches":["xx.com","yy.com"],"options":["ndots:2","edns0"]}。

配置整体结构如下:

{
    "servers": [
        "20.1.xx.xx",
        "30.1.xx.xx"
    ],
    "searches": [
        "xx.com",
        "yy.com"
    ],
    "options": [
        "ndots:2",
        "edns0"
    ]
}

各字段说明如下:

key

value

子项

类型

示例值

描述

network.alibabacloud.com/custom-dnsconfig

{"servers":["20.1.xx.xx","30.1.xx.xx"],"searches":["xx.com","yy.com"],"options":["ndots:2","edns0"]}

servers

[]String

["20.1.xx.xx","30.1.xx.xx"]

DNS服务器的IP地址列表。仅支持填入2个IP地址,多余的会自动忽略。

同时,系统会在最后自动追加阿里云DNS服务器的IP地址,以保证系统服务正常。

searches

[]String

["xx.com","yy.com"]

DNS搜索域列表。最多允许32个。

进行域名解析时,如果输入的域名不完整,系统会自动尝试使用该列表中的域名后缀来补全并进行解析。

options

[]String

["ndots:2","edns0"]

DNS解析选项。可包含多个Key:Value值。以下为一些常见选项:

  • ndots:设置DNS在主机名中必须至少包含多少个点号(.)才会将其视为绝对域名,否则会尝试在搜索域中进行解析。

  • edns0:开启EDNS0扩展支持,以支持更大的UDP数据包大小和提高安全性。

  • timeout:设置DNS查询超时时间。

  • attempts:设置DNS查询尝试次数。

重要

请您根据实际业务需求为Pod配置dnsPolicy。例如,当您的需求与场景二匹配时,您需要配置dnsPolicy为ClusterFirst。

若修改配置后,Pod会Pending并报错InternalError,请检查您的配置内容是否正确。

操作步骤

下面以无状态应用为例:

  1. 使用以下示例内容创建deploy.yaml文件,生成应用配置。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: nginx-acs-custom-dns
      name: acs-custom-dns
      namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx-acs-custom-dns
      template:
        metadata:
          annotations:
            network.alibabacloud.com/custom-dnsconfig: '{"servers":["114.114.114.114","8.8.8.8"],"searches":["xx.com","yy.com"],"options":["ndots:2","edns0"]}'
          labels:
            alibabacloud.com/acs: 'true'
            alibabacloud.com/compute-class: general-purpose
            alibabacloud.com/compute-qos: default      
            app: nginx-acs-custom-dns
        spec:
          containers:
            - image: 'mirrors-ssl.aliyuncs.com/nginx:stable-alpine'
              imagePullPolicy: Always
              name: nginx
              ports:
                - containerPort: 80
                  protocol: TCP
          dnsPolicy: Default
  2. 执行以下命令创建应用。

    kubectl apply -f deploy.yaml
  3. 执行以下命令,查看应用DNS详情。

    kubectl  exec  <pod name>  cat /etc/resolv.conf

    预期输出:

    search xx.com yy.com
    nameserver 114.114.114.114
    nameserver 8.8.8.8
    nameserver 100.100.2.136
    options ndots:6 edns
相关文章

使用自建镜像仓库创建ACS Pod 2025-04-18 18:14

拉取自建镜像仓库中的镜像时,可能会碰到因协议不同、证书认证失败或者使用了自建DNS服务器而导致镜像拉取失败的问题。本文介绍在自建镜像仓库采用HTTP协议和使用自签发证书或者自建DNS服务器的情况下,如何拉取自建镜像仓库中的镜像来创建ACS工作负载。 功能说明 拉取自建镜像仓库中的镜像时,可能会碰到E

为ACS Pod配置自定义DNS 2025-04-18 18:14

如果您需要使用自建DNS服务来解析镜像仓库以及其他应用的域名,需要将ACS Pod使用的DNS配置为您自建的DNS服务器。本文介绍如何为ACS Pod配置自定义DNS。 适用范围 以下3种情况可以通过Annotation配置自定义DNS:

使用PrivateLink解决数据中心网段IP冲突 2025-04-18 18:14

数据中心的Kubernetes集群通过专线接入ACK One注册集群后,在使用Serverless算力资源时,ack-virtual-node组件需要调用阿里云内网的OpenAPI进行资源生命周期管理。而这些内网的OpenAPI域名解析的IP地址通常都是100网段的IP,可能会导致内网中使用相同网段

静态挂载NAS存储卷 2025-04-18 18:14

对于共享数据,I/O要求较高的应用场景,您可以使用文件存储 NAS(File Storage NAS)作为持久化存储卷。本文介绍如何为应用

静态挂载OSS存储卷 2025-04-18 18:14

如果应用需要存储图片、音视频等非结构化数据,可以使用OSS作为持久化存储卷。本文介绍如何为应用静态挂载OSS存储卷,并验证OSS的共享存储和持久化存储。 注意事项 OSS是一个海量、安全、低成本、高可靠的存储空间,适合存储写入后较少修改的数据,以及非结构化数据(如图片、音视频等)。更多信息,请参见存

增加临时存储空间大小 2025-04-18 18:14

ACS Pod默认提供30 GiB的免费的临时存储空间(EphemeralStorage),如果该存储空间大小无法满足您的需求,您可以自定义增加临时存储空间大小。 背景信息 每个ACS Pod默认提供30 GiB的临时存储空间(免费),如下图所示。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号