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

協助改進此頁面

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

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

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

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

您可以在下列各節中使用 AWS 管理主控台 或 CLI AWS 修改叢集 API 伺服器端點存取。

設定端點存取 - AWS 主控台

  1. 開啟 Amazon EKS 主控台

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

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

  4. 對於 Private access (私有存取),選擇是否啟用或停用您叢集的 Kubernetes API 伺服器端點的私有存取。如果您啟用私有存取,源自於您叢集的 VPC 的 Kubernetes API 將使用私有 VPC 端點。您必須啟用私有存取,才能停用公有存取。

  5. 對於 Public access (公有存取),選擇是否啟用或停用您叢集的 Kubernetes API 伺服器端點的公有存取。若您停用公有存取,您叢集的 Kubernetes API 伺服器僅可接收來自叢集 VPC 內的請求。

  6. (選用) 如果您已啟用 Public access (公開存取),則可指定網際網路可用來與公有端點通訊的位址。選取 Advanced Settings (進階設定)。輸入 CIDR 區塊,例如 203.0.113.5/32。區塊不能包含預留地址。您可以透過選取 Add source (新增來源) 來輸入其他區塊。您可以指定的 CIDR 區塊有數量上限。如需詳細資訊,請參閱檢視與管理 Amazon EKS 和 Fargate 服務配額。如果不指定區塊,則公有 API 伺服器端點會接收來自所有 IPv4 (0.0.0.0/0) IP 位址的要求,此外對於雙重堆疊 IPv6 叢集,還會接受來自 IPv6 (::/0) 的要求。如果您使用 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 上編輯此頁面