首页 > 解决方案 > 使用 CDK 的 EKS 部署显示 Kubernetes 版本错误

问题描述

我正在尝试使用 Python CDK 部署我的 EKS 集群。我正在关注此(https://github.com/pahud/aws-cdk-python-workshop/tree/master/Lab6)链接以进行实施。一切正常,但是当我执行“cdk deploy”时,它显示以下错误: 在此处输入图像描述

在 Cloudformation 控制台上,它显示以下错误:

在此处输入图像描述

我尝试通过以下方式将 cdk_pycon_eks_stack.py中的版本更改为 1.20、1.20.4、1.16、1.16.5 等(https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html),

...................

# create the cluster
        cluster = aws_eks.Cluster(self, 'cluster',
                                  masters_role=eks_admin_role,
                                  vpc=vpc,
                                  default_capacity=0,
                                  version='1.20',
                                  output_cluster_name=True
                                  )

...........................................

,但随后显示以下错误:

在此处输入图像描述

任何帮助,将不胜感激!!谢谢


编辑:

评论/答案中供参考的其他图片:forversion = aws_eks.KubernetesVersion.of("v1_20") 在此处输入图像描述

为了version = aws_eks.KubernetesVersion().V1_20

在此处输入图像描述

标签: pythonkubernetesamazon-cloudformationamazon-eksaws-cdk

解决方案


这里的代码正在寻找一个完整的 KubernetesVersion 对象,而不是一个字符串。
看看:https
://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_eks/KubernetesVersion.html#aws_cdk.aws_eks.KubernetesVersion 所以你可以做类似的事情(原谅我这是未经测试的,因为我通常将 TypeScript 用于 CDK):

version = aws_eks.KubernetesVersion().V1_20

或者可能:

version = aws_eks.KubernetesVersion.of("v1_20") #string may be something else, try it and see

推荐阅读