叢集 API 伺服器端點 - Amazon EKS

協助改進此頁面

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

叢集 API 伺服器端點

本主題可協助您啟用 Amazon EKS 叢集 Kubernetes API 伺服器端點和限制的私有存取,或完全停用從網際網路的公有存取。

建立新的叢集時,Amazon EKS 會為您用來與叢集通訊的受管 Kubernetes API 伺服器建立端點 (使用 Kubernetes 管理工具,例如 kubectl)。根據預設,此 API 伺服器端點會在網際網路上公開,而其存取則受到 AWS Identity and Access Management (IAM) 及原生 Kubernetes 角色型存取控制 (RBAC) 的共同保護。此端點稱為叢集公有端點。此外還有一個叢集私有端點。有關叢集私有端點的更多資訊,請參閱以下章節 叢集私有端點

IPv6 叢集端點格式

對於 2024 年 10 月之後建立的新 IPv6 叢集,EKS 會以下列格式建立唯一的雙堆疊端點。IPv6 叢集是指您在叢集的 IP 系列 (ipFamily) 設定中選取了 IPv6 的叢集。

AWS

EKS 叢集公有/私有端點:eks-cluster.region.api.aws

AWS GovCloud (US)

EKS 叢集公有/私有端點:eks-cluster.region.api.aws

Amazon Web Services in China

EKS 叢集公有/私有端點:eks-cluster.region.api.amazonwebservices.com.rproxy.govskope.ca.cn

注意

雙堆疊叢集端點於 2024 年 10 月引入。如需 IPv6 叢集的詳細資訊,請參閱 了解叢集、Pod 與服務的 IPv6 位址。2024 年 10 月之前建立的叢集,則使用以下端點格式。

IPv4 叢集端點格式

EKS 會為每個在叢集的 IP 系列 (ipFamily) 設定中選擇了 IPv4 的叢集,以下列格式建立唯一端點:

AWS

EKS 叢集公有/私有端點 eks-cluster.region.eks.amazonaws.com

AWS GovCloud (US)

EKS 叢集公有/私有端點 eks-cluster.region.eks.amazonaws.com

Amazon Web Services in China

EKS 叢集公有/私有端點 eks-cluster.region.amazonwebservices.com.rproxy.govskope.ca.cn

注意

在 2024 年 10 月之前,IPv6 叢集也會使用此端點格式。對於這些叢集,公有端點和私有端點都只能從此端點解析出 IPv4 位址。

叢集私有端點

您可啟用 Kubernetes API 伺服器的私有存取,讓節點和 API 伺服器間的所有通訊都不會離開 VPC。您可以限制可以從網際網路存取 API 伺服器的 IP 地址,或完全停用對 API 伺服器的網際網路存取。

注意

由於此端點僅適用於 Kubernetes API 伺服器,並非傳統用來與 AWS API 通訊的 AWS PrivateLink 端點,因此不會顯示在 Amazon VPC 主控台內的端點。

啟用叢集的端點私有存取時,Amazon EKS 會代表您建立 Route 53 私有託管區域,並將其與您叢集的 VPC 建立關聯。此私有託管區域由 Amazon EKS 管理,不會顯示在帳戶的 Route 53 資源中。若要讓私有託管區域正確將流量路由到 API 伺服器,您的 VPC 必須將 enableDnsHostnamesenableDnsSupport 設為 true,且 VPC 設定的 DHCP 選項必須在網域名稱伺服器清單中包含 AmazonProvidedDNS。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的更新 VPC 的 DNS 支援

建立新的叢集時,可定義您 API 伺服器端點的存取要求,您也可隨時更新叢集的 API 伺服器端點存取。

修改叢集端點存取

使用本節所述程序來修改現有叢集的端點存取。下表說明支援的 API 伺服器端點存取組合及其相關的行為。

端點公有存取 端點私有存取 Behavior (行為)

已啟用

已停用

  • 這是新 Amazon EKS 叢集的預設行為。

  • 來自您叢集 VPC 內 (如節點與控制平面間的通訊) 的 Kubernetes API 請求會離開 VPC,但不會離開 Amazon 的網路。

  • 您的叢集 API 伺服器可從網際網路上存取。您可以選擇性地限制可存取公有端點的 CIDR 區塊。如果您限制對特定 CIDR 區塊的存取權,則建議您同時啟用私有端點,或確保您指定的 CIDR 區塊包含節點和 Fargate Pod (如果您使用它們) 用來存取公有端點的位址。

已啟用

已啟用

  • 來自您叢集 VPC 內 (如節點與控制平面間的通訊) 的 Kubernetes API 請求會使用私有 VPC 端點。

  • 您的叢集 API 伺服器可從網際網路上存取。您可以選擇性地限制可存取公有端點的 CIDR 區塊。

  • 如果您將混合節點與 Amazon EKS 叢集搭配使用,不建議同時啟用公有和私有叢集端點存取。由於您的混合節點在 VPC 外部執行,它們會將叢集端點解析為公有 IP 位址。對於具有混合節點的叢集,建議使用公有或私有叢集端點存取其中之一。

已停用

已啟用

  • 前往您叢集 API 伺服器的所有流量必須來自叢集的 VPC 或連接的網路

  • 您的 API 伺服器無法從網際網路上公有存取。任何 kubectl 命令都必須來自 VPC 或連接的網路內。如需連接選項,請參閱 存取僅限私有 API 伺服器

  • 公有 DNS 伺服器會將叢集的 API 伺服器端點解析為 VPC 的私有 IP 位址。在過去,端點只能從 VPC 內解析。

    如果您的端點未針對現有叢集解析為 VPC 內的私有 IP 地址,您可以:

    • 啟用公有存取,然後再次停用它。您只需對叢集執行一次,從此以後,端點就會解析為私有 IP 地址。

    • 更新您的叢集。

公有端點中的 CIDR 區塊 (IPv6 叢集)

您可以將 IPv6IPv4 CIDR 區塊新增至 IPv6 叢集的公有端點,因為該公有端點是雙重堆疊的。這僅適用於 2024 年 10 月或之後建立的、ipFamily 設定為 IPv6 的新叢集。您可以透過新的端點網域名稱 api.aws 來識別這些叢集。

公有端點中的 CIDR 區塊 (IPv4 叢集)

您可以將 IPv4 CIDR 區塊新增至 IPv4 叢集的公有端點。您無法將 IPv6 CIDR 區塊新增至 IPv4 叢集的公有端點。如果您嘗試這樣做,EKS 會傳回以下錯誤訊息:The following CIDRs are invalid in publicAccessCidrs

公有端點中的 CIDR 區塊 (2024 年 10 月之前建立的 IPv6 叢集)

您可以將 IPv4 CIDR 區塊新增到您在 2024 年 10 月之前建立的舊 IPv6 叢集的公有端點。您可以透過 eks.amazonaws.com 端點來識別這些叢集。您無法將 IPv6 CIDR 區塊新增到您在 2024 年 10 月之前建立的這些舊 IPv6 叢集的公有端點。如果您嘗試這樣做,EKS 會傳回以下錯誤訊息:The following CIDRs are invalid in publicAccessCidrs

存取僅限私有 API 伺服器

若您已停用叢集 Kubernetes API 伺服器端點的公有存取,將只能在 VPC 內或連接的網路存取 API 伺服器。以下是存取 Kubernetes API 伺服器端點的幾種可能方法:

連線網路

使用 AWS 傳輸閘道或其他連線選項,將您的網路連線到 VPC,然後使用連線網路中的電腦。您必須確認 Amazon EKS 控制平面安全群組包含的規則允許連接埠 443 上來自連接網路的傳入流量。

Amazon EC2 堡壘主機

您可以在叢集 VPC 中的公有子網路啟動 Amazon EC2 執行個體,然後透過 SSH 登入該執行個體,以執行 kubectl 命令。如需詳細資訊,請參閱 AWS 上的 Linux 堡壘主機。您必須確認 Amazon EKS 控制平面安全群組包含的規則允許連接埠 443 上來自堡壘主機的傳入流量。如需詳細資訊,請參閱 檢視叢集的 Amazon EKS 安全群組要求

設定堡壘主機的 kubectl 時,請確認您使用的 AWS 憑證已映射至叢集的 RBAC 組態,或者將堡壘會使用的 IAM 主體新增至 RBAC 組態,之後再移除端點的公有存取。如需詳細資訊,請參閱授予 IAM 使用者和角色對 Kubernetes API 的存取權未經授權或存取遭拒 (kubectl)

AWS Cloud9 IDE

AWS Cloud9 為雲端型整合式開發環境 (IDE),只需使用瀏覽器就能撰寫、執行及除錯程式碼。您可在叢集的 VPC 內建立 AWS Cloud9 IDE,並使用 IDE 與您的叢集通訊。如需詳細資訊,請參閱在 AWS Cloud9 中建立環境。您必須確認 Amazon EKS 控制平面安全群組包含的規則允許連接埠 443 上來自 IDE 安全群組的傳入流量。如需詳細資訊,請參閱 檢視叢集的 Amazon EKS 安全群組要求

設定 AWS Cloud9 IDE 的 kubectl 時,請確認您使用的 AWS 憑證已映射至叢集的 RBAC 組態,或者將 IDE 會使用的 IAM 主體新增至 RBAC 組態,之後再移除端點的公有存取。如需詳細資訊,請參閱授予 IAM 使用者和角色對 Kubernetes API 的存取權未經授權或存取遭拒 (kubectl)

📝 在 GitHub 上編輯此頁面