如何通过Terraform获取EKS最新Kubernetes版本并对比集群当前版本
获取EKS可用最新Kubernetes版本并对比当前版本的方法
步骤1:拉取EKS支持的所有Kubernetes版本
使用Terraform的aws_eks_versions数据源,获取当前AWS区域内EKS官方支持的Kubernetes版本列表:
data "aws_eks_versions" "supported" { # 如需指定区域,可添加region字段,默认使用provider配置的区域 # region = "us-west-2" }
步骤2:提取最新版本并与集群当前版本对比
通过本地变量处理版本排序和对比逻辑:
locals { # 对支持版本列表排序后取最后一项,即为最新版本 eks_latest_version = sort(data.aws_eks_versions.supported.versions)[length(sort(data.aws_eks_versions.supported.versions)) - 1] current_cluster_version = data.aws_eks_cluster.example.version # 直接对比版本字符串,判断集群是否为最新版本 is_cluster_up_to_date = local.eks_latest_version == local.current_cluster_version }
步骤3:输出对比结果
添加输出块展示关键信息:
output "eks_latest_supported_version" { value = local.eks_latest_version description = "EKS官方支持的最新Kubernetes版本" } output "current_cluster_k8s_version" { value = local.current_cluster_version description = "当前EKS集群运行的Kubernetes版本" } output "is_cluster_up_to_date" { value = local.is_cluster_up_to_date description = "标记当前集群是否运行最新版本" }
补充说明
sort函数对版本号字符串的排序符合语义(如"1.29"会排在"1.28"之后),能准确获取最新版本- 需确保Terraform AWS Provider版本在v3.22.0及以上,
aws_eks_versions数据源才可用 - 默认返回的是EKS正式发布的支持版本,无需额外过滤预览版
内容的提问来源于stack exchange,提问作者chetan tamboli
相关产品推荐
相关产品推荐

