使用私人連結 (預覽版) 的已啟用 Arc 的 Kubernetes 叢集的私人連線能力
Azure Private Link 可讓您使用私人端點,將 Azure 服務安全地連結至您的虛擬網路。 這表示您可以使用 Azure Arc 連線內部部署的 Kubernetes 叢集,並透過 Azure ExpressRoute 或站對站 VPN 連線來傳送所有流量,而不是使用公用網路。 在 Azure Arc 中,您可以使用私人連結範圍模型來允許多個 Kubernetes 叢集使用單一私人端點與其 Azure Arc 資源進行通訊。
本文會說明 Azure Arc Private Link (預覽版) 的使用時機以及設定方法。
重要
除了東南亞以外,目前所有推出已啟用 Azure Arc 的 Kubernetes 的地區中,Azure Arc Private Link 功能皆處於預覽狀態。 請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。
優點
有了私人連結,您可以:
- 私下連線至 Azure Arc,而不需要開啟任何公用網路存取。
- 請確保已啟用 Azure Arc 的機器或伺服器中的資料只能透過授權的私人網路存取。
- 定義特定已啟用 Azure Arc 的 Kubernetes 叢集和其他透過私人端點進行連線的 Azure 服務資源線 (如 Azure 監視器),以防止資料從您的私人網路外泄。
- 使用 ExpressRoute 和 Private Link,將您的私人內部部署網路安全地連線至 Azure Arc。
- 讓所有的流量都在 Microsoft Azure 骨幹網路內。
如需詳細資訊,請參閱 Azure Private Link 的主要優點。
運作方式
Azure Arc 私人連結範圍將私人端點 (及其所包含的虛擬網路) 連線至 Azure 資源,在本例中,啟用 Azure Arc 的 Kube 叢集。 當您啟用已啟用 Arc 的 Kubernetes 叢集擴充功能時,這些案例可能需要連線到其他 Azure 資源。 例如,使用 Azure 監視器時,從叢集收集的記錄會傳送至 Log Analytics 工作區。
要將前面列出的已啟用 Arc 的 Kubernetes 叢集與其他 Azure 資源連線,則需要為每個服務設定私人連結。 如需範例,請參閱 Azure 監視器適用的 Private Link。
目前的限制
在規劃您的 Private Link 設定時,請考慮這些當前限制。
您只能將一個 Azure Arc Private Link 範圍與虛擬網路產生關聯。
啟用 Azure Arc 的 Kubernetes 叢集設定只能連結到一個 Azure Arc 私人連結範圍。
所有內部部署的 Kubernetes 叢集都必須使用相同的私人端點,方法是使用相同的 DNS 轉寄站來解析出正確的私人端點資訊 (FQDN 記錄名稱和私人 IP 位址)。 如需詳細資訊,請參閱 Azure 私人端點私人 DNS 區域值。 已啟用 Azure Arc 的 Kubernetes 叢集、Azure Arc 私人連結範圍和虛擬網路必須位於相同的 Azure 區域中。 私人端點和虛擬網路也必須位於相同的 Azure 區域,但該區域可以和您的 Azure Arc 私人連結範圍和已啟用 Arc 的 Kubernetes 叢集所在的區域不同。
在預覽期間,必須允許透過內部部署網路防火牆傳送至Microsoft Entra ID、Azure Resource Manager 和 Microsoft Container Registry 服務卷標的流量。
您使用的其他 Azure 服務,例如 Azure 監視器,可能需要自己的虛擬網路私人端點。
注意
已啟用 Azure Arc 且已啟用私人連線的 Kubernetes 叢集目前不支援叢集連線功能(因此是自定義位置)。 目前也不支援使用 Azure Arc 服務的私人連結進行網路連線,例如已啟用 Azure Arc 的數據服務和已啟用 Azure Arc 的應用程式服務。
支援透過私人連結之網路連線的叢集擴充功能
在已啟用 Azure Arc 的 Kubernetes 叢集上,這些擴充功能支援透過私人鏈接進行端對端連線:
規劃您的 Private Link 設定
若要透過私人連結將 Kubernetes 叢集連線到 Azure Arc,請設定您的網路,如下所示:
- 使用站對站 VPN 或 ExpressRoute 線路建立內部部署網路與 Azure 虛擬網路之間的連線。
- 部署 Azure Arc Private Link 範圍,控制 Kubernetes 叢集可以透過私人端點與 Azure Arc 通訊,並使用私人端點將它與您的 Azure 虛擬網路產生關聯。
- 更新區域網路上的 DNS 設定以解析私人端點位址。
- 設定本機防火牆,以允許存取 Microsoft Entra ID、Azure Resource Manager 和 Microsoft Container Registry。
- 建立已啟用 Azure Arc 的 Kubernetes 叢集和 Azure Arc 私人連結範圍的關聯。
- 選擇性地為已啟用 Azure Arc 的 Kubernetes 叢集所使用的其他 Azure 服務部署私人端點,例如 Azure 監視器。
本文的其餘部分假設您已設定 ExpressRoute 線路或站對站 VPN 連線。
網路組態
已啟用 Azure Arc 的 Kubernetes 會與數個 Azure 服務整合,將雲端管理和治理帶入混合式 Kubernetes 叢集。 這些服務中大部分都已提供私人端點。 不過,您必須設定防火牆和路由規則,以允許透過因特網存取 Microsoft Entra ID 和 Azure Resource Manager,直到這些服務提供私人端點為止。 您也必須允許存取 Microsoft Container Registry(和 AzureFrontDoor.FirstParty 作為Microsoft Container Registry 的前身)提取映射和 Helm 圖表,以啟用 Azure 監視器等服務,以及在 Kubernetes 叢集上初始設定 Azure Arc 代理程式。
有兩種方式可以啟用此設定:
如果您的網路設定為透過 Azure VPN 或 ExpressRoute 線路路由傳送所有因特網系結流量,您可以在 Azure 中設定與您的子網相關聯的網路安全組 (NSG),以允許輸出 TCP 443 (HTTPS) 存取 Microsoft Entra ID、Azure Resource Manager、Azure Front Door,以及使用 服務卷標Microsoft Container Registry。 NSG 規則看起來應該像這樣:
設定 Microsoft Entra ID 規則 Azure Resource Manager 規則 AzureFrontDoorFirstParty 規則 Microsoft Container Registry 規則 來源 虛擬網路 虛擬網路 虛擬網路 虛擬網路 來源連接埠範圍 * * * * 目的地 服務標籤 服務標籤 服務標籤 服務標籤 目的地服務標籤 AzureActiveDirectory AzureResourceManager AzureFrontDoor.FirstParty MicrosoftContainerRegistry 目的地連接埠範圍 443 443 443 443 通訊協定 TCP TCP TCP TCP 動作 允許 允許 允許 (輸入和輸出) 允許 優先順序 150 (必須低於任何阻止網際網路存取的規則) 151 (必須低於任何阻止網際網路存取的規則) 152 (必須低於任何阻止網際網路存取的規則) 153 (必須低於任何阻止網際網路存取的規則) 名稱 AllowAADOutboundAccess AllowAzOutboundAccess AllowAzureFrontDoorFirstPartyAccess AllowMCROutboundAccess 或者,在您的局域網路上設定防火牆,以允許輸出 TCP 443 (HTTPS) 存取 Microsoft Entra ID、Azure Resource Manager 和 Microsoft Container Registry,以及使用可下載的服務卷標檔案對 AzureFrontDoor.FirstParty 的輸入和輸出存取。 JSON 檔案中包含 Microsoft Entra ID、Azure Resource Manager、AzureFrontDoor.FirstParty 和 Microsoft Container Registry 所使用的所有公用 IP 位址範圍,並且會每月更新以反映任何變更。 Microsoft Entra 服務卷標是 AzureActiveDirectory,Azure Resource Manager 的服務卷標是 AzureResourceManager,Microsoft Container Registry 的服務卷標是 MicrosoftContainerRegistry,而 Azure Front Door 的服務卷標是 AzureFrontDoor.FirstParty。 請洽詢您的網路管理員和網路防火牆廠商,以瞭解如何設定防火牆規則。
建立 Azure Arc 私人連結範圍
登入 Azure 入口網站。
搜尋 Azure Arc Private Link 範圍。 或者,您可以直接移至 Azure 入口網站 中的 [Azure Arc Private Link 範圍] 頁面。
選取 建立。
選取訂用帳戶和資源群組。 在預覽期間,您的虛擬網路和已啟用 Azure Arc 的 Kubernetes 叢集必須位於和 Azure Arc 私人連結範圍相同的訂閱中。
為 Azure Arc 私人連結範圍命名。
若要要求與此 Azure Arc Private Link 範圍相關聯的每個已啟用 Arc 的 Kubernetes 叢集,以透過私人端點將數據傳送至服務,請選取 [ 允許公用網络存取]。 如果您這樣做,與此 Azure Arc Private Link 範圍相關聯的 Kubernetes 叢集可以透過私人或公用網路與服務通訊。 您可以在建立範圍後根據需要變更此設定。
選取 [檢閱 + 建立]。
驗證完成後,選取 [建立]。
建立私人端點
建立 Azure Arc 私人連結範圍之後,您必須使用私人端點將其連線到一或多個虛擬網路。 私人端點會公開對於您虛擬網路位址空間中私人 IP 上 Azure Arc 服務的存取權。
虛擬網路上的私人端點可讓您透過您網路集區的私人 IP,而不是使用這些端點的公用 IP 來連線到已啟用 Azure Arc 的 Kubernetes 叢集端點。 這可讓您繼續使用已啟用 Azure Arc 的 Kubernetes 叢集,而無須向未請求的輸出流量開啟放 VNet。 從私人端點到您資源的流量會經過 azure Microsoft,而且不會路由傳送至公用網路。
在 Azure 入口網站 中,流覽至您所建立的 Azure Arc Private Link 範圍資源。
在資源功能表中,選取 [設定] 之下的 [私人端點連線]。
選取 [新增] 以啟動端點建立流程。 您也可以選取在 Private Link 中心啟動的連線,然後選取 [核准] 來核准連線。
選取訂用帳戶和資源群組,然後輸入端點的名稱。 選取和您虛擬網路相同的區域。
選取 [下一步:資源]。
在 [ 資源] 頁面上,如果尚未選取這些值,請執行下列動作:
- 選取包含您 Azure Arc 私人連結範圍資源的訂閱。
- 針對 [ 資源類型],選擇
Microsoft.HybridCompute/privateLinkScopes
。 - 針對 [ 資源],選擇您稍早建立的 Azure Arc Private Link 範圍。
- 選取 [下一步:虛擬網路]。
在 [虛擬網絡] 頁面上:
- 選取您要從中聯機到已啟用 Azure Arc 的 Kubernetes 叢集的虛擬網路和子網。
- 選取 [下一步:DNS]。
在 [DNS] 頁面上:
在 [與私人 DNS 區域整合] 中,選取 [是]。 會建立新的 私用 DNS 區域。
或者,如果您想要手動管理 DNS 記錄,請選取 [否],然後完成您的 Private Link 設定,包括此私人端點和私人範圍設定。 接下來,根據 Azure 私人端點私人 DNS 區域值的指示來設定您的 DNS。 在準備您的私人連結設定時,請務必不要建立空白記錄。 您所建立的 DNS 記錄可以覆寫現有的設定,並影響您與已啟用 Arc 之 Kubernetes 叢集的連線能力。
選取 [檢閱 + 建立]。
讓驗證通過。
選取 建立。
設定內部部署 DNS 轉送
您的內部部署 Kubernetes 叢集必須能夠將私人連結 DNS 記錄解析為私人端點 IP 位址。 設定步驟會因您使用 Azure 私人 DNS 區域來維護 DNS 記錄,或您自己的 DNS 伺服器內部部署而有所不同。
使用 Azure 整合式私人 DNS 區域的 DNS 設定
如果您在建立私人端點時選取 [是 ] 以 與私人 DNS 區域 整合,您的內部部署 Kubernetes 叢集必須能夠將 DNS 查詢轉送至內建 Azure DNS 伺服器,才能正確解析私人端點位址。 您的 Azure 中需要一個 DNS 轉寄站 (專門建立的 VM 或已啟用 DNS Proxy 的 Azure 防火牆執行個體),之後您可以設定內部部署 DNS 伺服器,將查詢轉送到 Azure 以解析私人端點 IP 位址。
私人端點文件提供了使用 DNS 轉寄站設定內部部署工作負載的指引。
手動設定 DNS 伺服器
如果您在私人端點建立期間選擇不使用 Azure 私人 DNS 區域,您必須在內部部署 DNS 伺服器中建立必要的 DNS 記錄。
- 前往 Azure 入口網站。
- 瀏覽至與您的虛擬網路和 Azure Arc 私人連結範圍相關聯的私人端點資源。
- 從左側窗格中,選取 [DNS 設定] 以查看 DNS 記錄和您需要在 DNS 伺服器上設定的對應 IP 位址的清單。 FQDN 和 IP 位址會根據您為私人端點選取的區域和子網路中的可用 IP 位址而變更。
- 請遵循 DNS 伺服器廠商的指引,新增必要的 DNS 區域和 A 記錄,以符合入口網站中的資料表。 請務必選取適用於您網路的 DNS 伺服器。 每個使用此 DNS 伺服器的 Kubernetes 叢集現在可以解析私人端點 IP 位址,而且它們必須與 Azure Arc 私人連結範圍相關聯,否則連線將遭到拒絕。
設定私人連結
注意
從 connectedk8s
CLI 擴充功能 1.3.0 版開始,支援設定已啟用 Azure Arc 之 Kubernetes 叢集的私人連結,前提是 Azure CLI 版本必須為 2.3.0 以上。 如果您使用的是 1.3.0 版以上的 connectedk8s
CLI 擴充功能,我們引進了驗證功能,以確保您只有在執行 2.3.0 版以上的 Azure CLI 時,才能成功將叢集連線至 Azure Arc。
您可以使用下列命令,為已啟用 Azure Arc 的現有 Kubernetes 叢集或第一次將 Kubernetes 叢集上線至 Azure Arc 時設定私人連結:
az connectedk8s connect -g <resource-group-name> -n <connected-cluster-name> -l <location> --enable-private-link true --private-link-scope-resource-id <pls-arm-id>
參數名稱 | 描述 |
---|---|
--enable-private-link |
如果設定為 True ,則啟用私人連結功能。 |
--private-link-scope-resource-id |
稍早建立之私人連結範圍資源的識別碼。 例如:/subscriptions//resourceGroups//providers/Microsoft.HybridCompute/privateLinkScopes/ |
針對在設定 Azure Arc 私人連結範圍之前設定的已啟用 Azure Arc 的 Kubernetes 叢集,請使用下列步驟在 Azure 入口網站 中設定私人連結:
- 在 Azure 入口網站中,瀏覽到您的 Azure Arc 私人連結範圍資源。
- 從 [資源] 功能表的 [設定] 底下,選取 [Azure Arc 資源]。 然後選取 [新增]。
- 您會在與 Private Link 範圍相同的訂用帳戶和區域中看到所有已啟用 Arc 的 Kubernetes 叢集。 核取您想要與 Private Link 範圍相關聯之每個 Kubernetes 叢集的方塊。 當您完成時,請選擇 [ 選取 ] 以儲存變更。
疑難排解
如果您遇到問題,以下建議可能會有所幫助:
檢查您的內部部署 DNS 伺服器,以確認其是否轉送至 Azure DNS,或已設定為私人連結區域中的適當 A 記錄。 這些查閱命令應傳回 Azure 虛擬網路中的私人 IP 位址。 如果他們解析公用IP位址,請仔細檢查您的伺服器和網路的 DNS 設定。
nslookup gbl.his.arc.azure.com nslookup agentserviceapi.guestconfiguration.azure.com nslookup dp.kubernetesconfiguration.azure.com
針對將 Kubernetes 叢集上線的問題,請確認您已將 Microsoft Entra ID、Azure Resource Manager、AzureFrontDoor.FirstParty 和 Microsoft Container Registry 服務卷標新增至您的局域網路防火牆。
下一步
- 深入了解 Azure 私人端點。
- 了解如何疑難排解 Azure 私人端點連線問題。
- 了解如何為 Azure 監視器設定 Private Link。