启动自行管理的瓶装节点 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

启动自行管理的瓶装节点

本主题帮助您启动瓶装注册到 Amazon EKS 群集的节点。瓶颈是一个基于 Linux 的开源操作系统,专门由Amazon用于在虚拟机或裸机主机上运行容器。在这些节点加入集群后,您可以向其部署 Kubernetes 应用程序。有关瓶颈的更多信息,请参阅文档(位于 GitHub 上)。

重要

Amazon EKS 节点是标准的 Amazon EC2 实例,您需要基于常规的 Amazon EC2 实例价格为其付费。有关更多信息,请参阅Amazon EC2定价

重要
  • 您可以部署到具有 x86 或 Arm 处理器的 Amazon EC2 实例,但不能部署到具有 GPU 或推理芯片的实例。

  • 您不能部署到以下区域:中国(北京)(cn-north-1), 中国 (宁夏) (cn-northwest-1),AmazonGovCloud(美国东部)(us-gov-east-1),或AmazonGovCloud(美国西部)(us-gov-west-1)。

  • 没有Amazon CloudFormation模板来部署节点。

要使用启动瓶颈节点eksctl

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

eksctl version

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

注意

此过程仅适用于使用 eksctl 创建的集群。

  1. 创建一个名为的文件瓶装箱 .yaml并输入以下内容。将example values并输入您自己的价值。如果您想在 ARM 实例上进行部署,请将m5.large替换为 Arm 实例类型。如果指定了 Arm Amazon EC2 实例类型,请查看亚马逊 EKS 优化臂亚马逊 Linux AMI部署前。如果您想使用自定义 AMI 部署,请参阅构建瓶装和 GitHub 上的自定义 AMI 支持中的eksctl文档中)。如果要部署托管节点组,则必须使用启动模板部署自定义 AMI。有关更多信息,请参阅 启动模板支持

    重要

    如果您想将节点组部署到Amazon Outposts、Amazon Wavelength,或者AmazonLocal Zones 子网,然后Amazon Outposts、Amazon Wavelength,或者Amazon创建群集时,Local Zones 子网必须未传入,并且您必须在以下示例中指定子网。有关更多信息,请参阅 。从配置文件创建节点组Config 文件架构中的eksctl文档中)。

    --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: cn-north-1 version: '1.20' iam: withOIDC: true nodeGroups: - name: ng-bottlerocket instanceType: m5.large desiredCapacity: 3 amiFamily: Bottlerocket ami: auto-ssm iam: attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore ssh: allow: true publicKeyName: YOUR_EC2_KEYPAIR_NAME
  2. 使用以下命令部署节点。

    eksctl create cluster --config-file=bottlerocket.yaml

    输出:

    创建节点时,您将看到几行输出。输出的最后一行之一是以下示例行。

    [✔] created 1 nodegroup(s) in cluster "my-cluster"
  3. (可选)创建库贝内特持久卷在瓶颈节点上使用Amazon EBS CSI 插件。默认 Amazon EBS 驱动程序依赖于文件系统工具,这些工具不包括在瓶装箱中。有关使用驱动程序创建存储类的更多信息,请参阅Amazon EBS CSI 驱动程序

  4. (可选)默认情况下kube-proxy设置nf_conntrack_max内核参数设置为默认值,该值可能与 Bottlerocket 最初在启动时设置的值不同。如果你更喜欢保留波特洛克特的默认设置,然后使用以下命令编辑 kube-proxy 配置。

    kubectl edit -n kube-system daemonset kube-proxy

    Add--conntrack-max-per-core--conntrack-min to the kube-proxy参数,如以下示例所示。设置0意味着没有改变.

    containers: - command: - kube-proxy - --v=2 - --config=/var/lib/kube-proxy-config/config - --conntrack-max-per-core=0 - --conntrack-min=0
  5. (可选)部署示例应用程序来测试您的瓶装节点。

  6. (可选)如果您计划将 IAM 角色分配给您的所有 Kubernetes 服务账户,以便容器只具有所需的最低权限,并且集群中没有容器因其他原因(如检索当前区域)而需要访问 Amazon EC2 实例元数据服务 (IMDS),那么我们建议阻止对 IMDS 的容器访问。有关更多信息,请参阅 服务账户的 IAM 角色限制对 IMDS 和 Amazon EC2 实例配置文件证书的访问权限