我正在嘗試在AWS Elastic Kubernetes Service(EKS) 中托管一個應用程式。我已經使用IAM 用戶 (user1)使用 AWS 控制臺配置了 EKS 集群。配置節點組并將節點添加到 EKS 集群,一切正常。
為了連接到集群,我啟動了一個 EC2 實體 (Centos7) 并配置了以下內容:
1、安裝docker、kubeadm、kubelet和kubectl。
2. 安裝并配置 AWS Cli V2。
我曾使用user1的AWS_ACCESS_KEY_ID和AWS_SECRET_KEY_ID從 EC2 實體中配置 AWS Cli,以便使用 kubectl 連接到集群。
我運行以下命令以作為 user1 連接到集群:
1. aws sts get-caller-identity
2. aws eks update-kubeconfig --name trojanwall --region ap-south-1
我能夠以 user1 的身份在 EKS 集群中執行每一個操作。
但是,我現在創建了一個名為“ user2 ”的新用戶,并將當前的AWS_ACCESS_KEY_ID和AWS_SECRET_KEY_ID替換為 user2 的用戶。執行相同的步驟,當我嘗試運行“ kubectl get pods ”時,出現以下錯誤:

錯誤:您必須登錄到服務器(未經授權)
運行kubectl后的結果將 configmap -n kube-system aws-auth 描述為 user1:
Name: aws-auth
Namespace: kube-system
Labels: <none>
Annotations: <none>
Data
====
mapRoles:
----
- groups:
- system:bootstrappers
- system:nodes
rolearn: arn:aws:iam::XXXXXXXXXXXX:role/AWS-EC2-Role
username: system:node:{{EC2PrivateDNSName}}
BinaryData
====
Events: <none>
有誰知道如何解決這個問題?
uj5u.com熱心網友回復:
創建 EKS 集群時,只有創建集群的用戶才能訪問它。為了允許其他人訪問集群,您需要將該用戶添加到 aws-auth.conf 檔案。為此,請在您的data部分中添加
mapUsers: |
- userarn: arn:was:iam::<your-account-id>:user/<your-username>
username: <your-username>
groups:
- systems:masters
您可以根據要授予該用戶的權限使用不同的組。
如果您的機器上還沒有配置映射:
- 下載配置圖
curl -o aws-auth-cm.yaml https://amazon-eks.s3.us-west-2.amazonaws.com/cloudformation/2020-10-29/aws-auth-cm.yaml - 將默認值替換為您的值(角色 arn、用戶名、帳戶 ID...)
- 如上所述添加 mapUsers 部分
- 從終端執行
kubectl apply -f aws-auth-cm.yaml
您還可以按照檔案中的步驟操作 (更詳細)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/395570.html
標籤:linux 亚马逊网络服务 Kubernetes 亚马逊 亚马逊-eks
