AWS Fargate 配置文件 - Amazon EKS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS Fargate 配置文件

您必须先定义至少一个 Fargate 配置文件,以指定 Fargate 启动时哪些 Pod 应使用它们,然后才能在集群中的 Fargate 上安排 Pod。

Fargate 配置文件允许管理员声明在 Fargate 上运行哪些 Pod。此声明通过配置文件的选择器完成。每个配置文件最多可以有五个包含命名空间和可选标签的选择器。您必须为每个选择器定义一个命名空间。标签字段由多个可选键值对组成。与选择器匹配的 Pod(通过匹配选择器的命名空间和选择器中指定的所有标签)将被安排到 Fargate 上。如果定义了没有任何标签的命名空间选择器,Amazon EKS 会尝试使用配置文件将在该命名空间中运行的所有 Pod 安排到 Fargate。如果待安排的 Pod 与 Fargate 配置文件中的任何一个选择器匹配,该 Pod 将在 Fargate 上安排。

如果某个 Pod 匹配多个 Fargate 配置文件,Amazon EKS 将随机选择其中一个。在这种情况下,您可以通过将以下 Kubernetes 标签添加到 Pod 规范来指定 Pod 应使用哪个配置文件:eks.amazonaws.com/fargate-profile: <profile_name>。 但是,Pod 仍必须匹配该配置文件中的选择器才能被安排到 Fargate 上。

在创建 Fargate 配置文件时,您必须使用该配置文件为在 Amazon EKS 基础设施上运行的 Fargate 组件指定 Pod 执行角色。此角色将被添加到集群的 Kubernetes 基于角色的访问控制 (RBAC) 中以进行授权,以使在 Fargate 基础设施上运行的 kubelet 可以向 Amazon EKS 集群注册,并作为节点显示在集群中。Pod 执行角色还提供对 Fargate 基础设施的 IAM 权限,以允许对 Amazon ECR 映像存储库进行读取访问。有关更多信息,请参阅Pod 执行角色

Fargate 配置文件是不可变的。不过,您可以创建新的更新配置文件来替换现有配置文件,然后在更新配置文件创建完成后删除原始配置文件。

注意

删除配置文件后,使用 Fargate 配置文件运行的任何 Pod 都将停止并进入待处理状态。

如果集群中有任何 Fargate 配置文件处于 DELETING 状态,您必须等待该 Fargate 配置文件删除完毕,然后才能在该集群中创建其他配置文件。

Fargate 配置文件组件

Fargate 配置文件中包含以下组件。

{ "fargateProfileName": "", "clusterName": "", "podExecutionRoleArn": "", "subnets": [ "" ], "selectors": [ { "namespace": "", "labels": { "KeyName": "" } } ], "clientRequestToken": "", "tags": { "KeyName": "" } }
Pod 执行角色

当您的集群在 AWS Fargate 上创建 Pod 时,在 kubelet 基础设施上运行的 Fargate 需要代表您调用 AWS APIs,例如,从 Amazon ECR 中提取容器映像。Amazon EKS Pod 执行角色提供执行此操作的 IAM 权限。

创建 Fargate 配置文件时,必须指定要用于 Pod 的 Pod 执行角色。此角色将被添加到集群的 Kubernetes 基于角色的访问控制 (RBAC) 中以进行授权,以使在 Fargate 基础设施上运行的 kubelet 可以向 Amazon EKS 集群注册,并作为节点显示在集群中。有关更多信息,请参阅Pod 执行角色

Subnets (子网)

在该配置文件中启动 Pod 的子网的 IDs。目前,在 Fargate 上运行的 Pod 不会被分配公有 IP 地址,因此此参数仅接受私有子网(没有到互联网网关的直接路由)。

选择器

要匹配 Pod 以使用此 Fargate 配置文件的选择器。每个选择器都必须有一个关联的命名空间。您还可以选择为命名空间指定标签。最多可以在 Fargate 配置文件中指定五个选择器。一个 Pod 只需匹配一个选择器即可使用 Fargate 配置文件运行。

Namespace

您必须为选择器指定命名空间。选择器只匹配在此命名空间中创建的 Pod,不过,您可以创建多个选择器来定位多个命名空间。

标签

您可以选择指定 Kubernetes 标签来匹配选择器。选择器只匹配具有在选择器中指定的所有标签的 Pod。

创建 Fargate 配置文件

本主题可帮助您创建 Fargate 配置文件。您的集群必须位于受支持的区域中。您还必须已经创建了要用于 Fargate 配置文件的 Pod 执行角色。有关更多信息,请参阅Pod 执行角色。在 Fargate 上运行的 Pod 仅在私有子网上受支持(对 AWS 服务具有 NAT 网关访问权限,但没有到 Internet 网关的直接路由),因此您的集群的 VPC 必须具有可用的私有子网。您可以使用 eksctlAWS 管理控制台 创建配置文件。

使用 eksctl 为集群创建 Fargate 配置文件

此过程需要 eksctl 版本 0.35.0 或更高版本。可以使用以下命令来查看您的版本:

eksctl version

有关安装或升级 eksctl 的更多信息,请参阅安装或升级 eksctl

  • 使用以下 Fargate 命令创建 eksctl 配置文件,同时将 <variable text> 替换为您自己的值。您必须指定命名空间,但不需要提供标签选项。

    eksctl create fargateprofile --cluster <cluster_name> --name <fargate_profile_name> --namespace <kubernetes_namespace> --labels <key=value>

使用 AWS 管理控制台 为集群创建 Fargate 配置文件

  1. Open the Amazon EKS console at https://console.amazonaws.cn/eks/home#/clusters.

  2. 选择要为其创建 Fargate 配置文件的集群。

  3. Fargate profiles (Fargate 配置文件) 下,选择 Add Fargate profile (添加 Fargate 配置文件)

  4. Configure Fargate profile (配置 Fargate 配置文件) 页面上,输入以下信息并选择 下一步 (Next)

    1. Name (名称) 下,为 Fargate 配置文件输入唯一名称。

    2. 对于 Pod execution role (Pod 执行角色),选择要用于您的 Fargate 配置文件的 Pod 执行角色。将仅显示具有 eks-fargate-pods.amazonaws.com 服务委托人的 IAM 角色。如果您未看到此处列出的任何角色,则必须创建一个角色。有关更多信息,请参阅Pod 执行角色

    3. 对于 Subnets (子网),选择要用于 Pod 的子网。默认情况下,集群 VPC 中的所有子网都处于选中状态。在 Fargate 上运行的 Pod 仅支持私有子网;您必须取消选择任何公有子网。

    4. 对于 Tags (标签),您可以自行选择是否为 Fargate 配置文件添加标签。这些标签不会传播到与配置文件关联的其他资源,如 Pod。

  5. Configure pods selection (配置 Pod 选择) 页面上,输入以下信息并选择 Next (下一步)

    1. 对于 Namespace (命名空间),输入与 Pod 匹配的命名空间,如 kube-systemdefault

    2. (可选)将 Kubernetes 标签添加到指定命名空间中的 Pod 必须与选择器匹配的选择器中。例如,您可以将标签 infrastructure: fargate 添加到选择器中,以便只有指定命名空间中也具有 infrastructure: fargate Kubernetes 标签的 Pod 与选择器匹配。

  6. Review and create (查看和创建) 页面上,查看 Fargate 配置文件的信息,然后选择 Create (创建)

删除 Fargate 配置文件

本主题可帮助您删除 Fargate 配置文件。

当您删除 Fargate 配置文件时,使用该配置文件安排到 Fargate 的所有 Pod 都将被删除。如果这些 Pod 与另一个 Fargate 配置文件匹配,将使用该配置文件在 Fargate 上安排它们。如果它们不再匹配任何 Fargate 配置文件,则不会被安排到 Fargate,并仍可能处于待处理状态。

集群中一次只能有一个 Fargate 配置文件处于 DELETING 状态。您必须等待 Fargate 配置文件完成删除,然后才能删除该集群中的任何其他配置文件。

从集群中删除 Fargate 配置文件

  1. Open the Amazon EKS console at https://console.amazonaws.cn/eks/home#/clusters.

  2. 选择要从中删除 Fargate 配置文件的集群。

  3. 选择要删除的 Fargate 配置文件,然后选择 Delete (删除)

  4. Delete <cluster_name> (删除 &lt;集群名称&gt;) 页面上,键入集群的名称,然后选择 Confirm (确认) 以删除。