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

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

AmazonFargate 配置

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

Fargate 配置文件允许管理员声明哪些 Pod 在 Fargate 上运行。此声明通过配置文件的选择器完成。每个配置文件最多可以有五个包含命名空间和可选标签的选择器。您必须为每个选择器定义一个命名空间。标签字段由多个可选键值对组成。与选择器匹配的 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 配置文件时,必须使用配置文件为在 Fargate 基础设施上运行的 Amazon EKS 组件指定 Pod 执行角色。此角色将被添加到集群的 Kubernetes基于角色的访问控制(RBAC) 进行授权,以便kubelet在 Fargate 基础设施上运行的注册,并作为节点显示在您的 Amazon EKS 集群中。Pod 执行角色还提供对 Fargate 基础设施的 IAM 权限,以允许对 Amazon ECR 映像存储库进行读取访问。有关更多信息,请参阅 Pod 执行角色

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

注意

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

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

Fargate 配置文件组件

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

  • Pod 执行角色— 当您的集群在AmazonFargatekubelet在 Fargate 基础设施上运行的,需要调用Amazon代表您执行 API,以执行从 Amazon ECR 拉取容器映像等操作。Amazon EKS Pod 执行角色提供执行此操作的 IAM 权限。

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

  • Subnets— 将 Pod 启动到其中的使用此配置文件的子网的 ID。目前,在 Fargate 上运行的 Pod 不会被分配公有 IP 地址,因此,此参数仅接受私有子网(没有到 Internet 网关的直接路由)。

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

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

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

创建 Fargate 配置文件

本主题可帮助您创建 Fargate 配置文件。AmazonFargate 与亚马逊 EKS 在除中国(北京)、中国(宁夏)和以外的所有亚马逊 EKS 区域都可以使用AmazonGovCloud(美国东部),以及AmazonGovCloud(美国西部).. 您还必须已经创建了要用于 Fargate 配置文件的 Pod 执行角色。有关更多信息,请参阅 Pod 执行角色。在 Fargate 上运行的窗格仅在私有子网上受支持(使用NAT 网关访问Amazon服务,但没有到 Internet Gateway 的直接路由),因此您的集群的 VPC 必须具有可用的私有子网。您可以使用eksctl或Amazon Web Services Management Console。选择带有要用于创建 Fargate 配置文件的工具名称的选项卡。

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

eksctl version

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

eksctl

使用创建 Fargate 配置文件eksctl

使用以下命令创建您的 Fargate 个人资料eksctl命令,替换<variable text>(包括<>)与您自己的值。您必须指定命名空间,但--labels选项不是必需的。

eksctl create fargateprofile --cluster <cluster_name> --name <fargate_profile_name> --namespace <kubernetes_namespace> --labels <key=value>
Amazon Web Services Management Console

使用为集群创建 Fargate 配置文件Amazon Web Services Management Console

  1. 从打开 Amazon EKS 控制台https://console.aws.amazon.com/eks/home#/clusters

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

  3. 单击配置选项卡,然后计算选项卡。

  4. UDERFargate 配置文件中,选择添加 Fargate 配置文件

  5. 在存储库的配置 Fargate 配置文件” 页面上,输入以下信息并选择下一步

    1. 适用于名称下,为 Fargate 配置文件输入唯一名称。

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

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

    4. 适用于标签,您可以选择为 Fargate 配置文件添加标签。这些标签不会传播到与配置文件关联的其他资源,如 Pod。

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

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

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

  7. 在存储库的审核和创建页面上,查看 Fargate 配置文件的信息,然后选择Create

删除 Fargate 配置文件

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

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

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

您可以使用eksctl,Amazon Web Services Management Console,或AmazonCLI。选择带有要用于删除配置文件的工具名称的选项卡。

eksctl

可以使用以下命令从集群删除配置文件。将<example values>(包括<>),使用您自己的值。

eksctl delete fargateprofile --name <my-profile> --cluster <my-cluster>
Amazon Web Services Management Console

使用从集群中删除 Fargate 配置文件Amazon Web Services Management Console

  1. 打开 Amazon EKS 控制台https://console.aws.amazon.com/eks/home#/clusters

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

  3. 选择配置选项卡,然后选择计算选项卡。

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

  5. 在存储库的Delete<cluster_name>” 页面上,键入集群的名称,然后选择Replace以删除。

Amazon CLI

可以使用以下命令从集群删除配置文件。将<example values>(包括<>),使用您自己的值。

aws eks delete fargateprofile --faragate-profile-name <my-profile> --cluster-name <my-cluster>