首页/云/Kubernetes 速查/Service ExternalName 外部域名映射
本包目录(307 条)
kubectl 基础56 条工作负载36 条
网络与服务55 条
配置与存储54 条调度与资源52 条集群运维与排障54 条

Service ExternalName 外部域名映射

把集群内的服务名映射到外部 DNS 名称(CNAME 语义),不改应用配置即可指向外部数据库/中间件;不代理流量也不做健康检查。

Kubernetes 速查云更新于 2026-10-12

ExternalName Service

ExternalName Service
apiVersion: v1
kind: Service
metadata:
  name: legacy-db
  namespace: prod
spec:
  type: ExternalName
  externalName: db.legacy.example.com

验证解析

验证解析
kubectl get svc legacy-db
kubectl exec -it web-x -- nslookup legacy-db.prod.svc.cluster.local
kubectl get svc legacy-db -o jsonpath='{.spec.externalName}'
客户端拿到 CNAME 后由自身解析;若外部目标不是域名可达(如需要固定 IP),考虑无选择器 Service + 手动 Endpoints。

易错点

  • ExternalName 不依赖 kube-proxy,无端口映射:目标域名决定的端口由客户端直接使用
  • 某些客户端/证书校验场景对 CNAME 敏感(如 TLS SNI 不匹配),切换前先用测试 Pod 验证

数据来源与参考

  • Kubernetes 官方文档 · Service(ExternalName)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌