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

能否为Amazon EKS集群配置自定义FQDN适配DNS VPN环境?

解决EKS kubeconfig自动替换域名的方案

一、用脚本/别名自动替换kubeconfig中的域名

aws eks update-kubeconfig没有原生支持自定义server域名的参数,但可以通过执行命令后自动替换字段来实现:

  1. 直接执行组合命令
    每次更新kubeconfig后,用sed替换默认的EKS域名:
# 更新kubeconfig
aws eks update-kubeconfig --cluster-name <你的集群名称> --kubeconfig ~/.kube/config
# 替换为自定义Route53域名
sed -i.bak 's/https:\/\/.*\.eks\.amazonaws\.com/https:\/\/<你的自定义域名>/' ~/.kube/config
  • -i.bak会备份原kubeconfig文件,避免修改出错。
  1. 配置shell别名简化操作
    在~/.bashrc或~/.zshrc中添加别名,一键完成更新和替换:
alias update-eks-config='aws eks update-kubeconfig --cluster-name <你的集群名称> --kubeconfig ~/.kube/config && sed -i.bak "s/https:\/\/.*\.eks\.amazonaws\.com/https:\/\/<你的自定义域名>/" ~/.kube/config'

保存后执行source ~/.bashrc(或对应shell的配置文件),之后只需运行update-eks-config即可自动完成操作。

二、自动化Route53 CNAME记录更新(适配蓝绿部署)

蓝绿部署导致集群server域名频繁变更时,无需手动维护Route53记录,可通过脚本自动更新:

  1. 获取新集群的endpoint地址
NEW_CLUSTER_ENDPOINT=$(aws eks describe-cluster --name <新集群名称> --query "cluster.endpoint" --output text)
# 去掉前缀的https://,只保留域名部分
TARGET_DOMAIN=${NEW_CLUSTER_ENDPOINT#https://}
  1. 更新Route53的CNAME记录
aws route53 change-resource-record-sets --hosted-zone-id <你的Route53托管区ID> --change-batch '{
  "Comment": "更新EKS集群端点",
  "Changes": [
    {
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "Name": "<你的自定义域名>",
        "Type": "CNAME",
        "TTL": 300,
        "ResourceRecords": [
          {
            "Value": "'$TARGET_DOMAIN'"
          }
        ]
      }
    }
  ]
}'

将此脚本集成到蓝绿部署的流程中,切换集群后自动执行,确保自定义域名始终指向当前活跃的EKS集群。

总结

EKS原生不支持直接配置自定义域名作为集群端点,但通过shell脚本/别名自动替换kubeconfig字段 + 自动化Route53记录更新,可以完全替代手动操作,适配VPN路由限制和蓝绿部署的场景。

内容的提问来源于stack exchange,提问作者Liz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:46:05