用途:External-DNS 将 Kubernetes 中暴露的 Service 与 Ingress 同步到 DNS 提供商,免去手工维护 DNS 记录。本技能提供多提供商的配置、最佳实践与排障指引。
主要能力:支持 Azure DNS(Workload Identity 或 Service Principal,稳定)、Cloudflare(API Token,Beta)、AWS Route53(IRSA 或 Access Keys,稳定)、Google Cloud DNS(Workload Identity,稳定)。通过 Helm chart(kubernetes-sigs/external-dns,v1.18.0+)配置 provider、sources、domainFilters、policy、interval、txtOwnerId、日志与资源限制。
使用方式:在 Service/Ingress 上添加注解,如 external-dns.alpha.kubernetes.io/hostname 与 ttl;Cloudflare 可用 cloudflare-proxied,Route53 可用 alias。生产建议 policy: upsert-only、唯一 txtOwnerId、限制 domainFilters,并采用 Workload Identity/IRSA 等免静态凭证方案。常用命令包括 kubectl get pods/logs、dig 验证记录、az network dns record-set list 等。
适用场景:Kubernetes 集群内自动创建、更新 DNS 记录,多集群与多提供商环境,配合 ArgoCD ApplicationSet 部署。
限制:Cloudflare 支持为 Beta;具体权限、价格与效果以官方文档为准,资料未提供收费信息。