帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
在将混合节点连接到 Amazon EKS 集群之前,您必须为混合节点 IAM 角色授予加入集群的 Kubernetes 权限。有关如何创建混合节点 IAM 角色的信息,请参阅准备用于混合节点的凭证。Amazon EKS 支持通过两种方式将 IAM 主体关联到 Kubernetes 基于角色的访问控制(RBAC)、Amazon EKS 访问条目和 aws-auth
ConfigMap。有关 Amazon EKS 访问权限管理的更多信息,请参阅向 IAM 用户和角色授予对 Kubernetes API 的访问权限。
按照以下过程将混合节点 IAM 角色与 Kubernetes 权限关联起来。要使用 Amazon EKS 访问条目,集群必须是使用 API
或 API_AND_CONFIG_MAP
身份验证模式创建的。要使用 aws-auth
ConfigMap,集群必须是使用 API_AND_CONFIG_MAP
身份验证模式创建的。启用混合节点功能的 Amazon EKS 集群不支持仅 CONFIG_MAP
身份验证模式。
将 Amazon EKS 访问条目用于混合节点 IAM 角色
一种名为 HYBRID_LINUX 的混合节点 Amazon EKS 访问条目类型可以与 IAM 角色一起使用。使用此访问条目类型,用户名将被自动设置为 system:node:{{SessionName}}。有关创建访问条目的更多信息,请参阅创建访问条目。
AWS CLI
-
您必须已在设备上安装和配置最新版本的 AWS CLI。要查看当前版本,请使用
aws --version
。yum、apt-get 或适用于 macOS 的 Homebrew 等软件包管理器通常比 AWS CLI 的最新版本落后几个版本。要安装最新版本,请参阅《AWS 命令行界面用户指南》中的“安装”和“使用 aws configure 快速配置”。 -
使用以下命令创建访问条目。请将 CLUSTER_NAME 替换为集群的名称,将 HYBRID_NODES_ROLE_ARN 替换为您在准备用于混合节点的凭证步骤中创建的角色的 ARN。
aws eks create-access-entry --cluster-name CLUSTER_NAME \ --principal-arn HYBRID_NODES_ROLE_ARN \ --type HYBRID_LINUX
AWS Management Console
-
打开 Amazon EKS 控制台
。 -
选择已启用混合节点功能的集群的名称。
-
选择访问选项卡。
-
选择创建访问条目。
-
对于 IAM 主体,请选择您在准备用于混合节点的凭证步骤中创建的混合节点 IAM 角色。
-
对于类型,选择 Hybrid Linux。
-
(可选)对于标签,为访问条目分配标签。例如,为了更轻松地查找所有具有相同标签的资源。
-
选择跳过以检查并创建。不能向 Hybrid Linux 访问条目添加策略或更改其访问权限范围。
-
查看访问条目的配置。如果有任何内容看起来不正确,请选择上一步以返回步骤并更正错误。如果配置正确,请选择创建。
将 aws-auth ConfigMap 用于混合节点 IAM 角色
在以下步骤中,您将使用您在准备用于混合节点的凭证步骤中创建的混合节点 IAM 角色的 ARN 来创建或更新 aws-auth
ConfigMap。
-
检查您的集群是否已有现有的
aws-auth
ConfigMap。请注意如果您使用特定的kubeconfig
文件,请使用--kubeconfig
标志。kubectl describe configmap -n kube-system aws-auth
-
如果您看到有
aws-auth
ConfigMap,则请根据需要对其进行更新。-
打开该 ConfigMap 进行编辑。
kubectl edit -n kube-system configmap/aws-auth
-
根据需要添加新的
mapRoles
条目。将HYBRID_NODES_ROLE_ARN
替换为混合节点 IAM 角色的 ARN。注意,{{SessionName}}
是保存在 ConfigMap 中的正确模板格式。请勿将其替换为其他值。data: mapRoles: | - groups: - system:bootstrappers - system:nodes rolearn: HYBRID_NODES_ROLE_ARN username: system:node:{{SessionName}}
-
保存文件并退出文本编辑器。
-
-
如果集群没有现有的
aws-auth
ConfigMap,请使用以下命令创建一个。将HYBRID_NODES_ROLE_ARN
替换为混合节点 IAM 角色的 ARN。注意,{{SessionName}}
是保存在 ConfigMap 中的正确模板格式。请勿将其替换为其他值。kubectl apply -f=/dev/stdin <<-EOF apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - groups: - system:bootstrappers - system:nodes rolearn: HYBRID_NODES_ROLE_ARN username: system:node:{{SessionName}} EOF