为 Amazon EKS 集群创建或更新 kubeconfig 文件 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

为 Amazon EKS 集群创建或更新 kubeconfig 文件

在本主题中,您将为您的集群创建 kubeconfig 文件(或更新现有文件)。

kubectl 命令行工具使用 kubeconfig 文件中的配置信息与集群的 API 服务器通信。有关更多信息,请参阅 Kubernetes 文档中的 Organizing Cluster Access Using kubeconfig Files(使用 kubeconfig 文件组织集群访问权限)。

Amazon EKS 使用带 kubectlaws eks get-token 命令进行集群身份验证。默认情况下,Amazon CLI 使用以下命令返回的相同凭证:

aws sts get-caller-identity
先决条件
  • 现有 Amazon EKS 集群。要部署一个角色,请参阅 开始使用 Amazon EKS

  • 您的设备或 Amazon CloudShell 上安装了 kubectl 命令行工具。该版本可以与集群的 Kubernetes 版本相同,或者最多早于或晚于该版本一个次要版本。例如,如果您的集群版本为 1.28,则可以将 kubectl1.271.281.29 版本与之配合使用。要安装或升级 kubectl,请参阅 安装或更新 kubectl

  • 在您的设备或 Amazon CloudShell 上安装和配置了 Amazon Command Line Interface(Amazon CLI)的版本 2.12.3 或更高版本,或版本 1.27.160 或更高版本。要查看当前版本,请使用 aws --version | cut -d / -f2 | cut -d ' ' -f1。软件包管理器(如 yumapt-get 或适用于 macOS 的 Homebrew)通常比 Amazon CLI 的最新版本落后几个版本。要安装最新版本,请参阅《Amazon Command Line Interface 用户指南》中的安装、更新和卸载 Amazon CLI,以及使用 aws configure 快速配置。Amazon CloudShell 中安装的 Amazon CLI 版本也可能比最新版本落后几个版本。如需更新,请参阅《Amazon CloudShell 用户指南》中的将 Amazon CLI 安装到主目录

  • 有权将 eks:DescribeCluster API 操作用于您指定的集群的 IAM 用户或角色。有关更多信息,请参阅Amazon EKS 基于身份的策略示例。如果您使用自己的 OpenID Connect 提供者提供的身份来访问您的集群,请参阅 Kubernetes 文档中的使用 kubectl 来创建或更新您的 kube config 文件。

自动创建 kubeconfig 文件

先决条件
  • 在您的设备或 Amazon CloudShell 上安装和配置了 Amazon Command Line Interface(Amazon CLI)的版本 2.12.3 或更高版本,或版本 1.27.160 或更高版本。要查看当前版本,请使用 aws --version | cut -d / -f2 | cut -d ' ' -f1。软件包管理器(如 yumapt-get 或适用于 macOS 的 Homebrew)通常比 Amazon CLI 的最新版本落后几个版本。要安装最新版本,请参阅《Amazon Command Line Interface 用户指南》中的安装、更新和卸载 Amazon CLI,以及使用 aws configure 快速配置。Amazon CloudShell 中安装的 Amazon CLI 版本也可能比最新版本落后几个版本。如需更新,请参阅《Amazon CloudShell 用户指南》中的将 Amazon CLI 安装到主目录

  • eks:DescribeCluster API 操作用于您指定的集群的权限。有关更多信息,请参阅Amazon EKS 基于身份的策略示例

使用 Amazon CLI 创建 kubeconfig
  1. 为集群创建或更新 kubeconfig 文件。将 region-code 替换为您的集群所在的 Amazon Web Services 区域,并将 my-cluster 替换为您的集群的名称。

    aws eks update-kubeconfig --region region-code --name my-cluster

    预设情况下,在主目录的原定设置 kubeconfig 路径 (.kube) 中创建得到的配置文件,或者或与该位置的现有 config 合并。您可以使用 --kubeconfig 选项指定其他路径。

    发出 kubectl 命令时,可以使用 --role-arn 选项指定 IAM 角色 ARN 供身份验证使用。否则,将使用默认 Amazon CLI 或开发工具包凭证链中的 IAM 主体。通过运行 aws sts get-caller-identity 命令可以查看默认 Amazon CLI 或开发工具包标识。

    对于所有可用选项,运行 aws eks update-kubeconfig help 命令,或请参阅《Amazon CLI Command Reference》中的 update-kubeconfig

  2. 测试配置。

    kubectl get svc

    示例输出如下。

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 1m

    如果您收到任何授权或资源类型错误,请参阅故障排除主题中的 未经授权或访问被拒绝 (kubectl)