选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

使用服务注释配置网络负载均衡器

聚焦模式
使用服务注释配置网络负载均衡器 - Amazon EKS

帮助改进此页面

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

帮助改进此页面

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

了解如何使用 Kubernetes 服务注释在 Amazon EKS 中配置网络负载均衡器(NLB)。本主题介绍 EKS 自动模式支持的用于自定义 NLB 行为的注释,包括互联网可访问性、运行状况检查、SSL/TLS 终止和 IP 目标模式。

在 EKS 自动模式下创建类型为 LoadBalancer 的 Kubernetes 服务时,EKS 会根据您指定的注释自动预置和配置 AWS 网络负载均衡器。借助这种声明式方法,您可以直接通过 Kubernetes 清单来管理负载均衡器配置,确保遵循基础设施即代码实践。

对于所有 LoadBalancer 类型的服务,EKS 自动模式会默认处理网络负载均衡器预置,无需额外的控制器安装或配置。loadBalancerClass: eks.amazonaws.com/nlb 规范会自动设置为集群的默认值,这不仅简化了部署过程,同时也保持了与现有 Kubernetes 工作负载的兼容性。

注意

EKS 自动模式需要子网标签来标识公有子网和私有子网。

如果使用 eksctl 创建集群,则已包含这些标签。

了解如何为 EKS 自动模式的子网添加标签

示例服务

有关 Kubernetes Service 资源的更多信息,请参阅 Kubernetes 文档

请参阅下面的示例 Service 资源:

apiVersion: v1 kind: Service metadata: name: echoserver annotations: # Specify the load balancer scheme as internet-facing to create a public-facing Network Load Balancer (NLB) service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing spec: selector: app: echoserver ports: - port: 80 targetPort: 8080 protocol: TCP type: LoadBalancer # Specify the new load balancer class for NLB as part of EKS Auto Mode feature # For clusters with Auto Mode enabled, this field can be omitted as it's the default loadBalancerClass: eks.amazonaws.com/nlb

常用注释

下表列举了 EKS 自动模式支持的常用注释。请注意,EKS 自动模式可能并非支持所有注释。

提示

以下所有注释都需要加上前缀 service.beta.kubernetes.io/

字段 描述 示例

aws-load-balancer-type

指定负载均衡器类型。新部署请使用 external

external

aws-load-balancer-nlb-target-type

指定是将流量路由到节点实例还是直接路由到容器组 IP。标准部署请使用 instance,直接路由到容器组请使用 ip

instance

aws-load-balancer-scheme

指定负载均衡器是面向内部还是互联网。

internet-facing

aws-load-balancer-healthcheck-protocol

目标组的运行状况检查协议。常用选项是 TCP(默认)或 HTTP

HTTP

aws-load-balancer-healthcheck-path

使用 HTTP/HTTPS 协议时进行运行状况检查的 HTTP 路径。

/healthz

aws-load-balancer-healthcheck-port

用于运行状况检查的端口。可以是特定的端口号,也可以是 traffic-port

traffic-port

aws-load-balancer-subnets

指定要在其中创建负载均衡器的子网。可以使用子网 ID 或名称。

subnet-xxxx, subnet-yyyy

aws-load-balancer-ssl-cert

来自 AWS Certication Manager 的适用于 HTTPS/TLS 的 SSL 证书 ARN。

arn:aws:acm:region:account:certificate/cert-id

aws-load-balancer-ssl-ports

指定应使用 SSL/TLS 的端口。

443, 8443

load-balancer-source-ranges

被允许访问该负载均衡器的 CIDR 范围。

10.0.0.0/24, 192.168.1.0/24

aws-load-balancer-additional-resource-tags

要应用于负载均衡器和相关资源的其他 AWS 标签。

Environment=prod,Team=platform

aws-load-balancer-ip-address-type

指定负载均衡器是使用 IPv4 还是双栈(IPv4 + IPv6)地址。

ipv4dualstack

注意事项

  • 您必须更新集群 IAM 角色才能支持将标签从 Kubernetes 传播到 AWS 负载均衡器资源。有关更多信息,请参阅 EKS 自动模式资源的自定义 AWS 标签

  • 有关将资源关联到 EKS 自动模式或自主管理型 AWS 负载均衡器控制器的信息,请参阅迁移参考

  • 有关修复负载均衡器问题的信息,请参阅 EKS 自动模式故障排除

  • 有关使用 EKS 自动模式的负载均衡功能时的其他注意事项,请参阅负载均衡

将负载均衡模式迁移到 EKS 自动模式进时,需要对服务注释和资源配置进行一些更改。下表总结了旧版和新版实现之间的主要区别,包括不支持的选项和建议的替代方案。

服务注释

旧版 New 描述

service.beta.kubernetes.io/load-balancer-source-ranges

不支持

在服务上使用 spec.loadBalancerSourceRanges

service.beta.kubernetes.io/aws-load-balancer-type

不支持

在服务上使用 spec.loadBalancerClass

service.beta.kubernetes.io/aws-load-balancer-internal

不支持

使用 service.beta.kubernetes.io/aws-load-balancer-scheme

各种负载均衡器属性

不支持

使用 service.beta.kubernetes.io/aws-load-balancer-attributes

service.beta.kubernetes.io/aws-load-balancer-proxy-protocol

不支持

请改用 service.beta.kubernetes.io/aws-load-balancer-attributes

service.beta.kubernetes.io/aws-load-balancer-access-log-enabled

不支持

请改用 service.beta.kubernetes.io/aws-load-balancer-attributes

service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-name

不支持

请改用 service.beta.kubernetes.io/aws-load-balancer-attributes

service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-prefix

不支持

请改用 service.beta.kubernetes.io/aws-load-balancer-attributes

service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled

不支持

请改用 service.beta.kubernetes.io/aws-load-balancer-attributes

要迁移已弃用的负载均衡器属性注释,请将这些设置合并到 service.beta.kubernetes.io/aws-load-balancer-attributes 注释中。此注释接受以逗号分隔的负载均衡器属性键值对列表。例如,要指定代理协议、访问日志记录和跨区负载均衡,请使用以下格式:

service.beta.kubernetes.io/aws-load-balancer-attributes: | access_logs.s3.enabled=true access_logs.s3.bucket=my-bucket access_logs.s3.prefix=my-prefix load_balancing.cross_zone.enabled=true
service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: | proxy_protocol_v2.enabled=true

这种合并后的格式让您可以更加一致、灵活地配置负载均衡器属性,同时减少所需的单独注释数量。检查您现有的服务配置并进行更新以使用此合并后的格式。

TargetGroupBinding

旧版 New 描述

elbv2.k8s.aws/v1beta1

eks.amazonaws.com/v1

API 版本更改

spec.targetType 可选

spec.targetType 必需

显式目标类型规范

spec.networking.ingress.from

不支持

不再支持没有安全组的 NLB

本页内容

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。