View a markdown version of this page

Amazon EKS 混合节点功能网关配置参考 - Amazon EKS

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

Amazon EKS 混合节点功能网关配置参考

本页记录了 Amazon EKS 混合节点功能网关的所有可配置参数。有关安装说明,请参阅开始使用 EKS 混合节点功能的网关。有关该网关的概述,请参阅Amazon EKS 混合节点功能网关

Helm 图表值

下表列出了 eks-hybrid-nodes-gateway Helm 图表中的所有值。在 helm installhelm upgrade 期间,您可以使用 --set 标记或自定义的 values.yaml 文件设置这些值。

Type 默认 必需 描述

image.repository

字符串

public.ecr.aws/eks/eks-hybrid-nodes-gateway

网关映像的容器映像存储库。默认为 Amazon ECR 公有注册表。

image.tag

字符串

图表 appVersion

映像标签。默认为 Chart.yaml 中定义的 appVersion

image.pullPolicy

字符串

IfNotPresent

映像拉取策略。有效值:AlwaysIfNotPresentNever

replicas

整数

2

网关容器组(pod)的副本数量。为了在生产环境中实现高可用性,建议使用两个副本进行配置。

nodeLabel

字符串

hybrid-gateway-node

用于选择网关节点的节点标签键。节点必须将此标签设置为 "true"

vpcCIDR

字符串

""

用于 Cilium VTEP 配置的 VPC CIDR 数据块。示例:10.0.0.0/16

podCIDRs

字符串

""

混合节点上 Cilium 使用的容器组(pod)CIDR 列表(以逗号分隔)。示例:10.85.0.0/16,10.86.0.0/16

routeTableIDs

字符串

""

要使用混合容器组(pod)路由进行编程的 VPC 路由表 ID 列表(以逗号分隔)。示例:rtb-0123456789abcdef0,rtb-0123456789abcdef1

autoMode.enabled

布尔值

true

启用 EKS 自动模式集成。为 true 时,图表会添加 eks.amazonaws.com/compute-type: auto 节点选择器,并使用零停机时间滚动更新策略。对于托管节点组或自行管理的节点,设置为 false

示例安装命令

EKS 自动模式(默认):

helm install eks-hybrid-nodes-gateway oci://public.ecr.aws/eks/eks-hybrid-nodes-gateway \ --version 1.0.0 \ --namespace eks-hybrid-nodes-gateway \ --create-namespace \ --set vpcCIDR=VPC_CIDR \ --set podCIDRs=POD_CIDRS \ --set routeTableIDs=ROUTE_TABLE_IDS

托管节点组或自行管理的节点

helm install eks-hybrid-nodes-gateway oci://public.ecr.aws/eks/eks-hybrid-nodes-gateway \ --version 1.0.0 \ --namespace eks-hybrid-nodes-gateway \ --create-namespace \ --set autoMode.enabled=false \ --set vpcCIDR=VPC_CIDR \ --set podCIDRs=POD_CIDRS \ --set routeTableIDs=ROUTE_TABLE_IDS

自动模式与托管节点组配置对比

autoMode.enabled Helm 值控制部署模板中的两种行为:

行为 autoMode.enabled=true(默认) autoMode.enabled=false

节点选择器

除网关节点标签外,还会添加 eks.amazonaws.com/compute-type: auto

仅使用网关节点标签 (hybrid-gateway-node: "true")。

滚动更新策略

maxSurge: 1maxUnavailable: 0:通过在终止旧的容器组(pod)之前启动新容器组(pod),确保升级期间零停机时间。

maxSurge: 0maxUnavailable: 1:在启动新容器组(pod)之前终止旧容器组(pod),因为节点容量是预置的。

使用 EKS 自动模式时,必须先创建 NodePoolNodeClass,然后再安装 Helm 图表。NodePool 会使用正确的标签、污点和源/目标检查配置来预置 EC2 实例。有关所需的 YAML,请参阅 开始使用 EKS 混合节点功能的网关。使用托管节点组或自行管理的节点时,必须先自行预置节点并添加标签,然后再安装图表。

对于所有部署目标,部署会使用 hostNetwork: true 且需要 NET_ADMIN 功能。容器组(pod)反亲和性可确保两个网关容器组(pod)在不同的节点上运行。

主节点选举调优

网关使用基于 Kubernetes Lease 的主节点选举来维持主动-备用模式。默认参数针对快速失效转移进行了调优:

参数 默认值 说明

--leader-election-lease-duration

3s

非主节点在最后一次观察到续订租约后,尝试获取租约之前的等待时间。值越低,越能更快检测到主节点故障,但在临时网络问题期间会增加虚假失效转移的风险。

--leader-election-renew-deadline

2s

活动主节点在放弃主节点身份之前尝试续订租约的最长时间。必须小于租约持续时间。

--leader-election-retry-period

1s

候选节点重试获取租约或续订租约的频率。

使用默认值时,活动网关发生故障时的预期失效转移时间约为 3 – 5 秒。这包括备用节点检测租约到期、获取租约以及执行主节点设置序列(VPC 路由表更新和 Cilium VTEP 配置)的时间。

何时调整主节点选举参数

  • 如果您观察到因网关容器组(pod)与 Kubernetes API 服务器之间的瞬时网络延迟而导致主节点频繁切换,请延长租约持续时间

  • 如需加快失效转移检测,并确保网关节点与 API 服务器之间的网络可靠且低延迟,请缩短租约持续时间

  • 在大型集群中,延长重试期以减少主节点选举所产生的 API 服务器负载。

注意

--leader-election-renew-deadline 必须始终小于 --leader-election-lease-duration。如果续约截止日期超过租约持续时间,主节点可能会在续订之前丢失租约。