我想在CDK 中重新创建此功能
eksctl create cluster
--name <<cluster-name>>
--region <<region>>
--with-oidc
--nodes=3
我的cdk集群创建如下(在python中(
cluster = eks.Cluster(
self, "my-cluster",
cluster_name="my-cluster",
version=eks.KubernetesVersion.V1_21,
)
当我试图将iamserviceaccount添加到集群时,我得到了这个错误
Error: unable to create iamserviceaccount(s) without IAM OIDC provider enabled
然后我必须通过eksctl添加OIDC,但我希望能够在CDK中完成,我在文档中找不到任何帮助我完成这项工作的内容,我想知道是否有人有什么建议?
在TypeScript中,您可以执行以下操作:
new OpenIdConnectProvider(this, 'OidcProvider', {
url: this.cluster.clusterOpenIdConnectIssuerUrl
});
然后您应该能够处理IAM角色。这里,OpenIdConnectProvider
是来自aws-eks
封装的,而不是来自aws-iam
封装的。
我最终在集群定义中指定了一个alb_controller,这会自动在IAM中创建oidc提供程序。
cluster = eks.Cluster(
self, "my-cluster",
cluster_name="my-cluster",
version=eks.KubernetesVersion.V1_21,
alb_controller={
"version": eks.AlbControllerVersion.V2_3_1,
}
)