gpt4 book ai didi

amazon-web-services - 只有创建者用户才能从 kubectl 管理 AWS kubernetes 集群(EKS)?

转载 作者:行者123 更新时间:2023-12-02 11:37:16 26 4
gpt4 key购买 nike

我们有两个集群,命名为:

  1. MyCluster(由我创建)
  2. OtherCluster(不是我创建的)

“我”是我自己的 AWS IAM 用户。

我能够使用 kubectl 管理我创建的集群:

>>> aws eks update-kubeconfig --name MyCluster –profile MyUser
>>> kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 172.20.0.1 <none> 443/TCP 59d

但是,我无法管理“OtherCluster”集群(不是我创建的):

>>> aws eks update-kubeconfig --name OtherCluster --profile MyUser
>>> kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
error: the server doesn't have a resource type "svc"

阅读此github issue中一些遇到相同问题的人的反馈后,我尝试在最初创建“OtherCluster”的用户的上下文中执行此操作。

我通过编辑“~/.kube/config”,在“users.user.env”中添加“AWS_PROFILE”值来完成此操作。配置文件代表创建集群的用户。

~/.kube/配置:


users
- name: OtherCluster
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
args:
- token
- -i
- OtherCluster
command: aws-iam-authenticator
env:
- name: AWS_PROFILE
value: OTHER_USER_PROFILE

这有效:

# ~/.kube/config is currently pointing to OtherCluster

>>> kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 172.20.0.1 <none> 443/TCP 1d

我在管理集群的时候冒充别人显然不太理想。我更愿意授予我自己的用户访问权限以通过 kubectl 管理集群。有什么办法可以将管理集群的权限授予原始创建者以外的用户吗?这似乎过于严格了

最佳答案

创建 Amazon EKS 集群时,创建该集群的 IAM 实体(用户或角色)将作为管理员添加到 Kubernetes RBAC 授权表中。 最初,只有 IAM 用户可以使用 kubectl 调用 Kubernetes API 服务器。

要授予其他 AWS 用户与您的集群交互的能力,您必须在 Kubernetes 中编辑 aws-auth ConfigMap,为您的 ConfigMap 添加一个新的 mapUsers 条目。 This EKS doc涵盖所有流程。

To add an IAM user: add the user details to the mapUsers section of the ConfigMap, under data. Add this section if it does not already exist in the file. Each entry supports the following parameters:

  • userarn: The ARN of the IAM user to add.
  • username: The user name within Kubernetes to map to the IAM user. By default, the user name is the ARN of the IAM user.
  • groups: A list of groups within Kubernetes to which the user is mapped to. For more information, see Default Roles and Role Bindings
    in the Kubernetes documentation.

例子:

apiVersion: v1
data:
mapRoles: |
- rolearn: arn:aws:iam::555555555555:role/devel-worker-nodes-NodeInstanceRole-74RF4UBDUKL6
username: system:node:{{EC2PrivateDNSName}}
groups:
- system:bootstrappers
- system:nodes
mapUsers: |
- userarn: arn:aws:iam::555555555555:user/my-new-admin-user
username: my-new-admin-user
groups:
- system:masters

关于amazon-web-services - 只有创建者用户才能从 kubectl 管理 AWS kubernetes 集群(EKS)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55308605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com