External Dns Docker 镜像
cmaster11查看 Docker Hub 原文页
ExternalDNS是一款用于同步Kubernetes集群中的Services和Ingresses资源与DNS提供商(如阿里云DNS、AWS Route53等)的工具,让K8s资源可通过公共DNS服务发现。
下载次数: 0状态:社区镜像维护者:cmaster11仓库类型:镜像最近更新:
ExternalDNS
镜像概述
ExternalDNS是Kubernetes生态工具,用于将集群中暴露的Services和Ingresses资源与公共DNS提供商同步,使K8s资源可通过公共DNS服务发现。它不直接提供DNS服务,而是配置外部DNS提供商(如阿里云DNS、AWS Route53等),支持多平台统一管理。
核心功能
- 多DNS提供商支持:覆盖阿里云DNS、AWS Route53、Google CloudDNS、AzureDNS、CloudFlare等主流平台;
- K8s资源同步:支持Services(Load***类型)、Ingresses资源的DNS记录同步;
- 记录所有权管理:通过
--registry=txt标记自身管理的记录,支持非空托管区; - 自定义TTL:通过注解
external-dns.alpha.kubernetes.io/ttl设置DNS记录生存时间; - 环境变量兼容:所有命令行参数可通过环境变量替换(如
EXTERNAL_DNS_DRY_RUN=1替代--dry-run)。
使用场景
- 自动管理K8s集群的公共DNS记录,避免手动配置;
- 多云环境下统一同步DNS记录,跨平台兼容;
- 动态更新:当Service/Ingress的IP或域名变更时自动同步DNS记录。
配置说明
资源注解
- 设置域名:
kubectl annotate service nginx "external-dns.alpha.kubernetes.io/hostname=nginx.example.org."; - 设置TTL:
kubectl annotate service nginx "external-dns.alpha.kubernetes.io/ttl=10"。
关键参数
--registry txt:启用TTL记录管理所有权;--txt-owner-id:集群唯一标识,区分不同集群的记录;--provider:指定DNS提供商(如alibabacloud、aws);--dry-run:仅输出变更不执行实际操作;--source:同步的资源类型(service/ingress)。
部署示例
集群部署(阿里云)
yamlapiVersion: apps/v1 kind: Deployment metadata: name: external-dns spec: replicas: 1 selector: matchLabels: app: external-dns template: metadata: labels: app: external-dns spec: serviceAccountName: external-dns containers: - name: external-dns image: docker.xuanyuan.run/cmaster11/external-dns:latest args: - --source=service - --source=ingress - --provider=alibabacloud - --registry=txt - --txt-owner-id=my-cluster-id env: - name: ALICLOUD_ACCESS_KEY valueFrom: secretKeyRef: name: alicloud-secret key: access-key - name: ALICLOUD_SECRET_KEY valueFrom: secretKeyRef: name: alicloud-secret key: secret-key
本地测试运行
console# 构建工具 git clone https://github.com/kubernetes-incubator/external-dns.git && cd external-dns dep ensure -vendor-only && make # 测试同步(Google CloudDNS示例) ./build/external-dns --registry txt --txt-owner-id my-cluster-id --provider google --google-project example-project --source service --once --dry-run
镜像拉取方式
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
轩辕镜像加速拉取命令点我查看更多 external-dns 镜像标签
docker pull docker.xuanyuan.run/cmaster11/external-dns:<标签>
DockerHub 原生拉取命令
docker pull cmaster11/external-dns:<标签>
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务