Proxyserverinställningar i AKS som aktiveras av Azure Arc

Gäller för: AKS på Azure Stack HCI 22H2, AKS på Windows Server

Den här artikeln beskriver hur du konfigurerar proxyinställningar för AKS som aktiveras av Azure Arc. Om nätverket kräver att en proxyserver används för att ansluta till Internet går den här artikeln igenom stegen för att konfigurera proxystöd i AKS med hjälp av AksHci PowerShell-modulen. Stegen skiljer sig beroende på om proxyservern kräver autentisering.

Anteckning

Om du vill använda Kubernetes och Azure Services med Azure Arc ska du även lägga till url:erna som visas i Ansluta ett befintligt Kubernetes-kluster till Azure Arc i listan över tillåtna.

När du har konfigurerat distributionen med hjälp av följande alternativ kan du installera en AKS-värd på Azure Stack HCI och skapa Kubernetes-kluster med hjälp av PowerShell.

Innan du börjar

Kontrollera att du har uppfyllt alla krav i systemkraven.

Konfigurationsinformation för proxyserver

Proxyserverkonfigurationen för AKS-distributionen innehåller följande inställningar:

  • HTTP-URL och port, till exempel http://proxy.corp.contoso.com:8080.
  • HTTPS-URL och port, till exempel https://proxy.corp.contoso.com:8443.
  • (Valfritt) Giltiga autentiseringsuppgifter för autentisering till proxyservern.
  • (Valfritt) Giltig certifikatkedja om proxyservern är konfigurerad för att fånga upp SSL-trafik. Den här certifikatkedjan importeras till alla AKS-kontrollplan och arbetsnoder samt till hanteringsklustret för att upprätta en betrodd anslutning till proxyservern.

Undantagslista för att undanta privata undernät från att skickas till proxyn

Följande tabell innehåller listan med adresser som du måste exkludera med hjälp av parametern -noProxy i New-AksHciProxySetting.

IP-adress Orsak till uteslutning
localhost, 127.0.0.1 Localhost-trafik
.svc Intern Kubernetes-tjänsttrafik, där .svc representerar ett jokerteckennamn. Det här liknar att säga *.svc, men ingen används i det här schemat.
10.0.0.0/8 Adressutrymme för privat nätverk.
172.16.0.0/12 Adressutrymme för privat nätverk – Kubernetes Service CIDR.
192.168.0.0/16 Privat nätverksadressutrymme – 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 noProxy.contoso.comlist. Use a leading period rather than a wildcard (\*) character. In the example, the addressesexcludes addresses prefix1.contoso.com, prefix2.contoso.com och så vidare.

Standardvärdet för noProxy är localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16. Även om dessa standardvärden fungerar för många nätverk kan du behöva lägga till fler undernätsintervall och/eller namn i undantagslistan. Du kanske till exempel vill undanta företagets namnområde (.contoso.com) från att dirigeras via proxyn. Du kan uppnå det genom att ange värdena i noProxy listan.

Ange proxy för Azure Stack HCI- och Windows Server-kluster med datoromfattande proxyinställningar

Om du redan har datoromfattande proxyinställningar i Azure Stack HCI/Windows Server-klustret kan inställningarna åsidosätta eventuella AKS-specifika proxyinställningar och leda till ett fel under installationen.

Om du vill identifiera om du har proxyinställningar för hela datorn kör du följande skript på var och en av dina fysiska klusternoder:

$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"
    }
}

Konfigurera datoromfattande proxyundantag på var och en av de fysiska klustervärdar där problemet upptäcktes.

Kör följande PowerShell-skript och ersätt parametersträngen $no_proxy med en lämplig NO_PROXY undantagssträng för din miljö. Information om hur du konfigurerar en lista för din miljö på rätt noProxy sätt finns i Undantagslista för att undanta privata undernät från att skickas till proxyn.

$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")

Anteckning

Vi rekommenderar att du använder samma proxyinställningar på alla noder i redundansklustret. Om du har olika proxyinställningar på olika fysiska noder i redundansklustret kan det leda till oväntade resultat eller installationsproblem. Dessutom en IP-adress med jokertecken (*), till exempel 172.*, är inte giltigt. IP-adressen måste vara i rätt CIDR-notation (172.0.0.0/8).

Installera AksHci PowerShell-modulerna

Konfigurera systemproxyinställningarna på var och en av de fysiska noderna i klustret och se till att alla noder har åtkomst till de URL:er och portar som beskrivs i Systemkrav.

Om du använder fjärr-PowerShell måste du använda CredSSP.

Stäng alla öppna PowerShell-fönster innan du kör följande kommando:

Install-Module -Name AksHci -Repository PSGallery

Om din miljö använder en proxyserver för att komma åt Internet kan du behöva lägga till proxyparametrar i kommandot Install-Module innan du installerar AKS. Mer information finns i installationsmoduldokumentationen och följ Azure Stack HCI-dokumentationen för att konfigurera proxyinställningarna på de fysiska klusternoderna.

När du laddar ned AksHci PowerShell-modulen laddar vi även ned De Az PowerShell-moduler som krävs för att registrera en AKS-värd med Azure för fakturering.

Konfigurera en AKS-värd för en proxyserver med grundläggande autentisering

Om proxyservern kräver autentisering öppnar du PowerShell som administratör och kör följande kommando för att hämta autentiseringsuppgifter och ange konfigurationsinformationen:

$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

Konfigurera en AKS-värd för en proxyserver utan autentisering

Om proxyservern inte kräver autentisering kör du följande kommando:

$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

Konfigurera en AKS-värd för en proxyserver med ett betrott certifikat

Om proxyservern kräver att proxyklienter litar på ett certifikat anger du certifikatfilen när du kör Set-AksHciConfig. Certifikatfilens format är Base-64-kodad X .509. På så sätt kan du skapa och lita på certifikatet i hela stacken.

Viktigt

Om proxyn kräver att ett certifikat är betrott av de fysiska Azure Stack HCI-noderna kontrollerar du att du importerar certifikatkedjan till lämpligt certifikatarkiv på varje Azure Stack HCI-nod innan du fortsätter. Följ procedurerna för distributionen för att registrera Azure Stack HCI-noderna med de certifikat som krävs för proxyautentisering.

$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

Anteckning

Proxycertifikat måste anges som pfx-filformat eller -sträng (personligt informationsutbyte) och innehålla rotutfärdarkedjan för att använda certifikatet för autentisering eller för SSL-tunnelkonfiguration.

Nästa steg

Du kan nu fortsätta med att installera AKS i azure Stack HCI- eller Windows Server-klustret genom att köra Set-AksHciConfig följt av Install-AksHci.