You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Microk8s集群中配置ExternalDNS对接Cloudflare域名解析

MicroK8s高可用集群启用ExternalDNS操作指引

前置环境校验

  • 3节点MicroK8s集群运行正常,执行microk8s status可查看到所有节点状态为Ready
  • MetalLB已配置可用的对外IP池,Ingress控制器已分配到外部可达的负载均衡IP
  • 域名托管服务商的API凭证已获取,以Cloudflare为例需提前创建拥有DNS编辑权限的API令牌

未配置kubectl全局别名的环境,所有下文提到的kubectl命令均可替换为microk8s kubectl执行

步骤1:存储域名服务商API凭证

以Cloudflare为例,创建Secret存储API令牌,避免明文配置:

kubectl create secret generic cloudflare-api-token \
  --from-literal=api-token=<替换为你的Cloudflare DNS编辑权限令牌>

步骤2:部署ExternalDNS服务

MicroK8s默认支持Helm3,先启用对应组件:

microk8s enable helm3

添加ExternalDNS官方Helm仓库并安装服务,适配Cloudflare和Ingress监听规则:

microk8s helm3 repo add external-dns https://kubernetes-sigs.github.io/external-dns/
microk8s helm3 install external-dns external-dns/external-dns \
  --set provider=cloudflare \
  --set env[0].name=CF_API_TOKEN \
  --set env[0].valueFrom.secretKeyRef.name=cloudflare-api-token \
  --set env[0].valueFrom.secretKeyRef.key=api-token \
  --set domainFilters[0]=<替换为你的根域名,例如example.com> \
  --set sources[0]=ingress \
  --set policy=sync \
  --set interval=1m

参数说明:

  • domainFilters:配置仅同步指定根域名下的解析记录,避免误操作其他域名
  • sources[0]=ingress:配置仅监听Ingress资源,自动匹配Ingress的host字段生成解析记录
  • policy=sync:配置解析记录同步策略,自动删除已不存在的Ingress对应的解析记录,如需仅创建不删除可改为upsert-only

步骤3:功能验证

  • 创建测试Ingress资源,配置对应host字段为你的子域名,关联后端服务
  • 等待1-2分钟后查看域名托管商控制台,确认对应子域名的A记录已自动创建,指向你的Ingress对外IP
  • 本地执行nslookup <测试子域名>,确认解析正常返回正确IP

其他域名托管商适配方案

如需适配阿里云DNS、腾讯云DNSPod、AWS Route53等其他托管商,仅需修改两处配置即可:

  • 将provider参数替换为对应托管商的官方标识
  • 替换API凭证Secret的内容为对应托管商要求的密钥格式,同步调整env配置匹配托管商的环境变量要求

内容的提问来源于stack exchange,提问作者Rojan Gh.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 22:21:03