設定叢集 API 伺服器端點的網路存取 - Amazon EKS

協助改善此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要提供此使用者指南,請選擇位於每個頁面右窗格中的在 GitHub 上編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定叢集 API 伺服器端點的網路存取

您可以在下列各節中使用 AWS Management Console 或 CLI AWS 修改叢集 API 伺服器端點存取。

設定端點存取 - AWS 主控台

  1. 開啟 Amazon EKS 主控台

  2. 選擇叢集名稱以顯示您叢集的資訊。

  3. 選擇聯網索引標籤,然後選擇管理端點存取

  4. 針對私有存取,選擇是否啟用或停用叢集 Kubernetes API 伺服器端點的私有存取。如果您啟用私有存取,則來自叢集 VPC 內的 Kubernetes API 請求會使用私有 VPC 端點。您必須啟用私有存取,才能停用公有存取。

  5. 針對公有存取,選擇是否啟用或停用叢集 Kubernetes API 伺服器端點的公有存取。如果您停用公有存取,叢集的 Kubernetes API 伺服器只能接收來自叢集 VPC 內的請求。

  6. (選用) 如果您已啟用公有存取,您可以指定哪些來自網際網路的地址可以與公有端點通訊。選取 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 閘道與網際網路通訊,則您必須將 NAT 閘道的對外 IP 地址新增至公有端點上的白名單 CIDR 區塊。

  7. 選擇 Update (更新) 以完成操作。

設定端點存取 - AWS CLI

使用 CLI AWS 版本 1.27.160 或更新版本完成下列步驟。您可以使用 aws --version 來檢查您的目前版本。若要安裝或升級 AWS CLI,請參閱安裝 AWS CLI

  1. 使用以下 CLI AWS 命令更新您的叢集 API 伺服器端點存取權。替換叢集名稱和所需的端點存取值。如果您設定了 endpointPublicAccess=true,則可以 (選擇性地) 為 publicAccessCidrs 輸入單一 CIDR 區塊或以逗號分隔的 CIDR 區塊清單。區塊不能包含預留地址。如果您指定 CIDR 區塊,則公有 API 伺服器端點只會接收來自所列出區塊的要求。您可以指定的 CIDR 區塊有數量上限。如需詳細資訊,請參閱檢視和管理 Amazon EKS 和 Fargate 服務配額。如果您使用 CIDR 區塊限制對公有端點的存取,則建議您也啟用私有端點存取,以便節點和 Fargate Pods (如果您使用它們) 可以與叢集通訊。若不啟用私有端點,您的公有存取端點 CIDR 來源必須包含來自 VPC 的輸出來源。例如,如果您的私有子網路中有節點,透過 NAT 閘道與網際網路通訊,則您必須將 NAT 閘道的對外 IP 地址新增至公有端點上的白名單 CIDR 區塊。如果您未指定 CIDR 區塊,則公有 API 伺服器端點會收到來自所有 (0.0.0.0/0) IP 地址的請求,以及雙堆疊IPv6叢集的其他 IPv6(::/0) 請求。

    注意

    下列命令會啟用 API 伺服器端點的私有存取以及來自單一 IP 地址的公有存取。使用單一 CIDR 區塊或您想要限制網路存取的 CIDR 區塊清單取代 203.0.113.5/32

    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": [] } }
  2. 使用叢集名稱和前述命令傳回的更新 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": [] } }

📝 在 GitHub 上編輯此頁面