首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在哪里可以查看`eksctl`创建的服务账号?

在哪里可以查看`eksctl`创建的服务账号?
EN

Stack Overflow用户
提问于 2021-01-09 20:12:21
回答 3查看 951关注 0票数 1

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

代码语言:javascript
复制
[ℹ]  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控制台中的服务帐户?或者我可以在哪里查看错误?

EN

回答 3

Stack Overflow用户

发布于 2021-01-09 21:18:11

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

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

代码语言:javascript
复制
kubectl get serviceaccount <SERVICE_ACCOUNT_NAME> -n kube-system -o yaml

顺序是,创建IAM- Role,然后创建- RBAC角色和绑定。以下是用于覆盖现有serviceaccount的命令

代码语言:javascript
复制
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

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

有关ALB的更多信息,请访问here

编辑

从这个错误中

ℹ1现有的iamserviceaccount帐户(默认/alb-入口-控制器)将被排除

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

因此,检查serviceaccount的命令将是

代码语言:javascript
复制
kubectl get serviceaccount <SERVICE_ACCOUNT_NAME> -n default-o yaml
票数 1
EN

Stack Overflow用户

发布于 2021-09-16 11:54:32

eksctl使用CloudFormation创建资源,因此您可能会在那里找到错误的原因。

  1. 转到AWS
  2. 中的CloudFormation控制台查找名为eksctl-[CLUSTER NAME]-addon-iamserviceaccount-default-[SERVICE ACCOUNT NAME]的堆栈,它应该具有ROLLBACK_COMPLETE状态。
  3. 选择"events“选项卡,然后滚动到第一个错误代码<

>G210

在我的案例中,原因是我附加到角色上的一个缺失的策略。

票数 1
EN

Stack Overflow用户

发布于 2021-12-12 19:34:46

工作正常,谢谢@samtoddler!

1为IAM角色创建IAM策略

代码语言:javascript
复制
curl -o iam_policy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.3.0/docs/install/iam_policy.json
aws-vault exec Spryker-Humanetic-POC -- aws iam create-policy \
    --policy-name AWSLoadBalancerControllerIAMPolicy \
    --policy-document file://iam_policy.json

2.创建IAM角色,并将其附加到新创建的ServiceAccount

代码语言:javascript
复制
eksctl create iamserviceaccount \
  --cluster education-eks-7yby62S7 \
  --namespace kube-system \
  --name aws-load-balancer-controller \
  --attach-policy-arn arn:aws:iam::ACCOUNT_ID:policy/AWSLoadBalancerControllerIAMPolicy \
  --approve

3.1验证#1 ServiceAccount是否位于--namespace kube-system

代码语言:javascript
复制
kubectl get sa aws-load-balancer-controller -n kube-system -o yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::ACCOUNT_ID:role/eksctl-education-eks-7yby62S7-addon-iamservi-Role1-126OXTBKF3WBM
  creationTimestamp: "2021-12-12T17:38:48Z"
  labels:
    app.kubernetes.io/managed-by: eksctl
  name: aws-load-balancer-controller
  namespace: kube-system
  resourceVersion: "686442"
  uid: 895f6f34-ab04-4bca-aeac-1b6b75766546
secrets:
- name: aws-load-balancer-controller-token-gcd5c

3.2验证#2

代码语言:javascript
复制
kubectl get sa aws-load-balancer-controller -n kube-system
NAME                           SECRETS   AGE
aws-load-balancer-controller   1         123m

希望它能有所帮助!‍♀️

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65642474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档