首页 > 解决方案 > 我在哪里可以查看由 `eksctl` 创建的服务帐户?

问题描述

我在 AWS 中创建了一个 EKS 集群并使用此命令创建一个服务帐户eksctl create iamserviceaccount --name alb-ingress-controller --cluster $componentName --attach-policy-arn $serviceRoleArn --approve --override-existing-serviceaccounts。该命令的输出是:

[ℹ]  using region ap-southeast-2
[ℹ]  1 existing iamserviceaccount(s) (default/alb-ingress-controller) will be excluded
[ℹ]  1 iamserviceaccount (default/alb-ingress-controller) was excluded (based on the include/exclude rules)
[!]  metadata of serviceaccounts that exist in Kubernetes will be updated, as --override-existing-serviceaccounts was set
[ℹ]  no tasks

我不确定它是否创建成功。

我使用此命令eksctl get iamserviceaccount验证结果,但得到错误响应:

Error: getting iamserviceaccounts: no output "Role1" in stack "eksctl-monitor-addon-iamserviceaccount-default-alb-ingress-controller"

我也尝试运行kubectl get serviceaccount,但出现错误:Error from server (NotFound): serviceaccounts "alb-ingress-controller" not found.

这是否意味着服务帐户无法创建?在 AWS 控制台中的哪里可以查看服务账户?或者我在哪里可以查看错误?

标签: amazon-web-servicesamazon-eks

解决方案


根据错误,这意味着serviceaccount已经存在。

要获取服务帐户,请使用kubectl

kubectl get serviceaccount <SERVICE_ACCOUNT_NAME> -n kube-system -o yaml

顺序是创建 IAM 角色,然后是 RBAC 角色和绑定。以下是您想要覆盖现有服务帐户的命令

eksctl --profile <PROFILE_NAME> \
       --region=ap-northeast-2 \
       create iamserviceaccount \
       --name alb-ingress-controller \
       --namespace kube-system \
       --override-existing-serviceaccounts \
       --approve --cluster <CLUSTER_NAME> \
       --attach-policy-arn \
       arn:aws:iam::ACCOUNT_ID:policy/ALBIngressControllerIAMPolicy

我发现这个研讨会Amazon EKS Workshop在我进入 EKS 的过程中非常有帮助。

可以在此处找到有关 ALB 的更多信息

编辑

从这个错误

[ℹ] 1 个现有的 iamserviceaccount(s) (default/alb-ingress-controller) 将被排除

似乎服务帐户是在默认命名空间内创建的。

所以检查服务帐户的命令将是

kubectl get serviceaccount <SERVICE_ACCOUNT_NAME> -n default-o yaml

推荐阅读