使用OIDC复制eksctl集群创建



我想在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,
}
)

最新更新