帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
配置对集群 API 服务器端点的网络访问权限
您可以在以下部分中使用 AWS Management Console或 AWS CLI 修改集群 API 服务器端点访问。
配置端点访问 – AWS 控制台
-
选择集群的名称可以显示集群信息。
-
选择联网选项卡,然后选择管理端点访问。
-
对于私有访问,选择是启用还是禁用集群的 Kubernetes API 服务器端点的私有访问。如果启用私有访问,源自集群的 VPC 内的 Kubernetes API 请求将使用私有 VPC 端点。您必须启用私有访问以禁用公有访问。
-
对于公有访问,选择是启用还是禁用集群的 Kubernetes API 服务器端点的公有访问。如果禁用公有访问,集群的 Kubernetes API 服务器只能接收来自集群 VPC 内的请求。
-
(可选)如果您已启用公有访问,则可以指定互联网中的哪些地址可以与公共端点通信。选择 Advanced Settings (高级设置)。输入 CIDR 块,例如
203.0.113.5/32
。该块不能包含预留地址。您可以通过选择 Add Source (添加源) 来输入其他块。您可以指定的 CIDR 块存在最大数量限制。有关更多信息,请参阅 查看和管理 Amazon EKS 和 Fargate 服务配额。如果未指定任何块,则公有 API 服务器端点将接收来自双堆栈 IPv6
集群的所有IPv4
(0.0.0.0/0
) 和IPv6
(::/0
) IP 地址的请求。如果您使用 CIDR 块限制对公有端点的访问,建议您还启用私有端点访问,以便节点和 Fargate Pods(如果您使用它们)可以与集群进行通信。在未启用私有终端节点的情况下,您的公有访问终端节点 CIDR 源必须包含来自 VPC 的出口源。例如,如果您在私有子网中有一个节点,该节点通过 NAT 网关与 Internet 通信,则您需要将 NAT 网关的出站 IP 地址添加作为公有端点上的容许 CIDR 块的一部分。 -
选择 Update (更新) 完成操作。
配置端点访问 – AWS CLI
使用 AWS CLI 版本 1.27.160
或更高版本完成以下步骤。您可以使用 aws --version
检查您的当前版本。要安装或升级 AWS CLI,请参阅安装 AWS CLI。
-
使用下面的 AWS CLI 命令更新集群 API 服务器端点访问。替换您的集群名称和所需的终端节点访问值。如果设置了
endpointPublicAccess=true
,则可以(可选)输入单个 CIDR 块,或者输入publicAccessCidrs
的用逗号分隔的 CIDR 块列表。块不能包含预留地址。如果您指定 CIDR 块,则公有 API 服务器终端节点将只接收来自列出的块的请求。您可以指定的 CIDR 块存在最大数量限制。有关更多信息,请参阅 查看和管理 Amazon EKS 和 Fargate 服务配额。如果您使用 CIDR 块限制对公有端点的访问,建议您还启用私有端点访问,以便节点和 Fargate Pods(如果您使用这些 Pod)可以与集群进行通信。在未启用私有终端节点的情况下,您的公有访问终端节点 CIDR 源必须包含来自 VPC 的出口源。例如,如果您在私有子网中有一个节点,该节点通过 NAT 网关与 Internet 通信,则您需要将 NAT 网关的出站 IP 地址添加作为公有端点上的容许 CIDR 块的一部分。如果未指定任何 CIDR 块,则公有 API 服务器端点将接收来自双堆栈 IPv6
集群的所有 (0.0.0.0/0) 和IPv6
(::/0
) 的 IP 地址请求。注意
以下命令为 API 服务器终端节点启用来自单个 IP 地址的私有访问和公有访问。将
203.0.113.5/32
替换为要限制网络访问的单个 CIDR 块或用逗号分隔的 CIDR 块列表。aws eks update-cluster-config \ --region region-code \ --name my-cluster \ --resources-vpc-config endpointPublicAccess=true,publicAccessCidrs="203.0.113.5/32",endpointPrivateAccess=true
示例输出如下。
{ "update": { "id": "e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000", "status": "InProgress", "type": "EndpointAccessUpdate", "params": [ { "type": "EndpointPublicAccess", "value": "true" }, { "type": "EndpointPrivateAccess", "value": "true" }, { "type": "publicAccessCidrs", "value": "[\"203.0.113.5/32\"]" } ], "createdAt": 1576874258.137, "errors": [] } }
-
使用以下命令通过上一命令返回的集群名称和更新 ID 监控您的终端节点访问更新的状态。当状态显示为
Successful
时,您的更新将完成。aws eks describe-update \ --region region-code \ --name my-cluster \ --update-id e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000
示例输出如下。
{ "update": { "id": "e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000", "status": "Successful", "type": "EndpointAccessUpdate", "params": [ { "type": "EndpointPublicAccess", "value": "true" }, { "type": "EndpointPrivateAccess", "value": "true" }, { "type": "publicAccessCidrs", "value": "[\"203.0.113.5/32\"]" } ], "createdAt": 1576874258.137, "errors": [] } }