Azure Arc 所啟用 AKS 中的 Proxy 伺服器設定
適用於:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS
本文說明如何設定 Azure Arc 所啟用 AKS 的 Proxy 設定。如果您的網路需要使用 Proxy 伺服器來連線到因特網,本文會逐步引導您使用 AksHci PowerShell 模組在 AKS 中設定 Proxy 支援的步驟。 這些步驟會根據 Proxy 伺服器是否需要驗證而有所不同。
注意
如果您想要搭配 Azure Arc 使用 Kubernetes 和 Azure 服務,請確定您也會將現有的 Kubernetes 叢集連線至 Azure Arc 中所示的 URL 新增至您的允許清單。
使用下列選項設定部署之後,您就可以 在 Azure 本機 上安裝 AKS 主機,並使用 PowerShell 建立 Kubernetes 叢集。
開始之前
請確定您已符合系統需求中的所有必要條件。
Proxy 伺服器組態資訊
AKS 部署的 Proxy 伺服器組態包含下列設定:
- HTTP URL 和埠,例如
http://proxy.corp.contoso.com:8080
。 - HTTPS URL 和埠,例如
https://proxy.corp.contoso.com:8443
。 - (選擇性)驗證 Proxy 伺服器的有效認證。
- (選擇性)如果您的 Proxy 伺服器設定為攔截 SSL 流量,則為有效的憑證鏈結。 此憑證鏈結會匯入所有 AKS 控制平面和背景工作節點,以及管理叢集,以建立與 Proxy 伺服器的受信任連線。
排除私人子網無法傳送至 Proxy 的排除清單
下表包含您必須使用 -noProxy
中的 New-AksHciProxySetting
參數排除的位址清單。
IP 位址 | 排除原因 |
---|---|
localhost , 127.0.0.1 |
Localhost 流量 |
.svc |
內部 Kubernetes 服務流量,其中 .svc 代表通配符名稱。 這類似於說 *.svc ,但此架構中不會使用任何專案。 |
10.0.0.0/8 |
專用網位址空間。 |
172.16.0.0/12 |
專用網位址空間 - Kubernetes 服務 CIDR。 |
192.168.0.0/16 |
專用網位址空間 - Kubernetes Pod CIDR。 |
.contoso.com`` | You might want to exempt your enterprise namespace (.contoso.com) from being directed through the proxy. To exclude all addresses in a domain, you must add the domain to the list. Use a leading period rather than a wildcard (\*) character. In the example, the addresses excludes addresses noProxy.contoso.com prefix1.contoso.com, prefix2.contoso.com』等等。 |
noProxy
的預設值為 localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
。 雖然這些預設值適用於許多網路,但您可能需要將更多子網範圍和/或名稱新增至豁免清單。 例如,您可能想要豁免企業命名空間 (.contoso.com) 無法透過 Proxy 導向。 您可以在 noProxy
清單中指定值來達成此目的。
使用全機器 Proxy 設定來設定 Azure 本機和 Windows Server 叢集的 Proxy
如果您的 Azure 本機/Windows Server 叢集上已經有全電腦的 Proxy 設定,這些設定可能會覆寫任何 AKS 特定的 Proxy 設定,並在安裝期間導致失敗。
若要偵測您是否擁有全計算機的 Proxy 設定,請在每個實體叢集節點上執行下列腳本:
$http_proxy = [System.Environment]::GetEnvironmentVariable("HTTP_PROXY", "Machine")
$https_proxy = [System.Environment]::GetEnvironmentVariable("HTTPS_PROXY", "Machine")
$no_proxy = [System.Environment]::GetEnvironmentVariable("NO_PROXY", "Machine")
if ($http_proxy -or $https_proxy) {
if (-not $no_proxy) {
Write-Host "Problem Detected! A machine-wide proxy server is configured, but no proxy exclusions are configured"
}
}
在偵測到問題的每個實體叢集主機上設定全機器 Proxy 排除專案。
執行下列 PowerShell 腳本, $no_proxy
並以適合 NO_PROXY
您環境的排除字串取代參數位符串。 如需如何正確 noProxy
設定環境清單的資訊,請參閱 排除私人子網無法傳送至 Proxy 的排除清單。
$no_proxy = "localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com"
[Environment]::SetEnvironmentVariable("NO_PROXY", $no_proxy, "Machine")
$env:NO_PROXY = [System.Environment]::GetEnvironmentVariable("NO_PROXY", "Machine")
注意
建議您在故障轉移叢集中的所有節點上使用相同的 Proxy 設定。 在故障轉移叢集中的不同實體節點上有不同的 Proxy 設定可能會導致非預期的結果或安裝問題。 此外,具有通配符的IP位址,例如 172。*, 無效。 IP 位址必須位於適當的 CIDR 表示法中(172.0.0.0/8)。
安裝 AksHci PowerShell 模組
在叢集中的每個實體節點上設定系統 Proxy 設定,並確定所有節點都能存取系統需求中所述的 URL 和埠。
如果您使用遠端 PowerShell,則必須使用 CredSSP。
在執行下列命令之前,請先關閉所有開啟的 PowerShell 視窗:
Install-Module -Name AksHci -Repository PSGallery
如果您的環境使用 Proxy 伺服器來存取因特網,您可能需要在安裝 AKS 之前,將 Proxy 參數新增至 Install-Module 命令。 如需詳細資訊,請參閱 Install-Module 檔,並遵循 Azure 本機檔來設定實體叢集節點上的 Proxy 設定。
當您下載 AksHci PowerShell 模組時,我們也會下載向 Azure 註冊 AKS 主機以計費所需的 Az PowerShell 模組。
使用基本身份驗證設定 Proxy 伺服器的 AKS 主機
如果您的 Proxy 伺服器需要驗證,請以系統管理員身分開啟 PowerShell,然後執行下列命令以取得認證並設定組態詳細數據:
$proxyCred = Get-Credential
$proxySetting=New-AksHciProxySetting -name "corpProxy" -http http://contosoproxy:8080 -https https://contosoproxy:8443 -noProxy localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com -credential $proxyCredential
為 Proxy 伺服器設定 AKS 主機,而不需驗證
如果您的 Proxy 伺服器不需要驗證,請執行下列命令:
$proxySetting=New-AksHciProxySetting -name "corpProxy" -http http://contosoproxy:8080 -https https://contosoproxy:8443 -noProxy localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com
使用受信任的憑證設定 Proxy 伺服器的 AKS 主機
如果您的 Proxy 伺服器需要 Proxy 用戶端信任憑證,請在執行 Set-AksHciConfig
時指定憑證檔案。 憑證檔案的格式為 Base-64編碼的 X.509。 這可讓您在整個堆疊中建立並信任憑證。
重要
如果您的 Proxy 需要實體 Azure 本機節點信任憑證,請務必在繼續之前,將憑證鏈結匯入每個 Azure 本機節點上的適當證書存儲。 請遵循部署的程式,使用 Proxy 驗證所需的憑證來註冊 Azure 本機節點。
$proxySetting=New-AksHciProxySetting -name "corpProxy" -http http://contosoproxy:8080 -https https://contosoproxy:8443 -noProxy localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com -credential $proxyCredential
注意
Proxy 憑證必須以個人資訊交換 (PFX) 檔格式或字串的形式提供,並包含根授權單位鏈結,以使用憑證進行驗證或 SSL 通道設定。
下一步
您現在可以繼續在 Azure 本機或 Windows Server 叢集上安裝 AKS,方法是執行 Set-AksHciConfig
,後面接著 Install-AksHci
執行 。