全部產品
Search
文件中心

Container Service for Kubernetes:為叢集開啟訪問公網的能力

更新時間:Mar 13, 2025

如果叢集內部的服務需要訪問外部公網資源,例如拉取公網鏡像、更新依賴庫等,您可以通過控制台為建立叢集或已有叢集配置SNAT Gateway功能,以便開啟叢集訪問公網的能力。

說明

如需實現叢集的公網訪問,讓外部可以通過公網訪問叢集的API Server,例如通過kubectl管理叢集等,請參見控制叢集API Server的公網訪問能力使用阿里雲EIP暴露API Server

計費說明

開啟SNAT功能時會涉及以下產品:

  • NAT Gateway:阿里雲全託管的網路位址轉譯網關,通過轉換和隱藏雲端服務地址,防止地址直接暴露,實現安全訪問互連網提升網路安全性。相關計費,請參見公網NAT Gateway計費

  • 彈性公網 IP(EIP):可以獨立購買和持有的公網IP地址資源。當EIP和雲資源綁定後,雲資源可以通過EIP與公網通訊。相關計費,請參見隨用隨付

操作步驟

您可以在建立叢集時或在已有叢集中配置SNAT條目,使得叢集可以通過公網NAT Gateway綁定的EIP訪問互連網。

說明

ACK暫不支援通過API方式為已有叢集開啟SNAT功能。

在已有叢集中開啟

為已有叢集開啟SNAT公網訪問能力的流程圖及對應操作流程如下。

  1. 建立NAT Gateway。

    NAT Gateway地區需與叢集地區保持一致。

    1. 登入NAT Gateway管理主控台

    2. 在左側導覽列,選擇NAT Gateway > 公網NAT Gateway

    3. 公網NAT Gateway頁面,單擊建立公網NAT Gateway,參數配置完成後,單擊立即購買。更多建立NAT Gateway的參數說明,請參見建立和管理公網NAT Gateway執行個體

      重要

      在VPC內建立第一個公網NAT Gateway時,阿里雲會在VPC的系統路由表中自動添加一條目標網段為0.0.0.0/0,下一跳為公網NAT Gateway的路由條目,用於將流量引入公網NAT Gateway。若VPC記憶體在自訂路由表或多個公網NAT Gateway,則需手動添加路由。具體操作,請參見建立和管理路由表

  2. (可選)建立Elastic IP Address。如果您已經有Elastic IP Address,可以跳過此步。

    1. 在左側導覽列,選擇公網訪問 > Elastic IP Address

    2. 然後在Elastic IP Address頁面,單擊建立Elastic IP Address,地區和NAT Gateway處於同一地區,參數設定完成後,單擊立即購買

  3. 綁定Elastic IP Address到對應的NAT Gateway。

    1. 在左側導覽列,選擇NAT Gateway > 公網NAT Gateway

    2. 公網NAT Gateway頁面,找到目標NAT Gateway,然後在其右側操作列選擇1 > 綁定Elastic IP Address

    3. 綁定Elastic IP Address對話方塊中,在所在資源群組下拉式清單中設定資源群組,然後在從已有Elastic IP Address中選擇下拉式清單中,選擇已建立的Elastic IP Address後,單擊確定

  4. 為NAT Gateway建立交換器粒度的SNAT條目。

    1. 公網NAT Gateway頁面,找到目標NAT Gateway,然後在其右側操作列單擊管理

    2. 單擊SNAT管理頁簽,然後單擊建立SNAT條目

    3. 建立SNAT條目頁面,配置以下參數,然後單擊確定建立。更多建立SNAT條目的參數配置說明,請參見建立SNAT條目

      配置項

      說明

      SNAT條目粒度

      選中交換器粒度,然後選擇相應的叢集網路所使用的虛擬交換器,可以選擇多個。

      • Terway網路:需要選中節點虛擬交換器和Pod虛擬交換器所對應的ID。

      • Flannel網路:只需選中節點虛擬交換器所對應的ID。

      展開查看如何擷取虛擬交換器ID

      • 擷取節點虛擬交換器ID

        1. 登入Container Service管理主控台,在左側導覽列單擊叢集列表

        2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇節點管理 > 節點池

        3. 在節點池頁面,單擊目標節點池名稱,然後單擊基本資料頁簽,在節點配置地區查看節點虛擬交換器ID。image

      • 擷取Pod虛擬交換器ID

        1. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇組態管理 > 配置項

        2. 配置項頁面頂部,設定命名空間kube-system,單擊eni-config

          eni-config頁面,vswitches對應的值,即為Pod虛擬交換器ID。

          Pod虛擬交換器ID

      選擇Elastic IP Address地址

      選擇用來提供互連網訪問的公網IP。

    建立SNAT條目並配置SNAT規則之後,叢集就開啟了SNAT。您可以在NAT Gateway管理主控台查看NAT Gateway的詳細資料,包括SNAT使用的Elastic IP Address。下圖為Terway網路模式下開啟了SNAT公網訪問的NAT Gateway執行個體。NAT

建立叢集時開啟

登入Container Service管理主控台建立叢集時,在網路設定地區,選中為專用網路配置SNAT。建立叢集相關操作,請參見建立ACK託管叢集image

重要

在VPC內建立第一個公網NAT Gateway時,阿里雲會在VPC的系統路由表中自動添加一條目標網段為0.0.0.0/0,下一跳為公網NAT Gateway的路由條目,用於將流量引入公網NAT Gateway。若VPC記憶體在自訂路由表或多個公網NAT Gateway,則需手動添加路由。具體操作,請參見建立和管理路由表

執行結果

登入叢集的節點,然後訪問公網,可以看到網路正常,資料包無丟失。

SNAT 2

常見問題

如何查看叢集公網IP地址?

  1. 登入NAT Gateway管理主控台

  2. 在左側導覽列,選擇NAT Gateway > 公網NAT Gateway

  3. 公網NAT Gateway頁面,找到目標NAT Gateway,然後在其右側操作列單擊管理

  4. 單擊SNAT管理頁簽,在SNAT條目列表地區,查看叢集使用的Elastic IP Address等資訊。snat

相關文檔