Condividi tramite


Impostazioni del server proxy nel servizio Azure Kubernetes abilitato da Azure Arc

Si applica a: Servizio Azure Kubernetes in Azure Stack HCI 22H2, servizio Azure Kubernetes in Windows Server

Questo articolo descrive come configurare le impostazioni proxy per il servizio Azure Kubernetes abilitato da Azure Arc. Se la rete richiede l'uso di un server proxy per connettersi a Internet, questo articolo illustra la procedura per configurare il supporto proxy nel servizio Azure Kubernetes usando il modulo Azure Kubernetes Di PowerShell. I passaggi sono diversi a seconda che il server proxy richieda l'autenticazione.

Nota

Se si vuole usare Kubernetes e Servizi di Azure con Azure Arc, assicurarsi di aggiungere anche gli URL visualizzati in Connettere un cluster Kubernetes esistente ad Azure Arc all'elenco di elementi consentiti.

Dopo aver configurato la distribuzione usando le opzioni seguenti, è possibile installare un host del servizio Azure Kubernetes in azure locale e creare cluster Kubernetes usando PowerShell.

Operazioni preliminari

Assicurarsi di aver soddisfatto tutti i prerequisiti nei requisiti di sistema.

Informazioni sulla configurazione del server proxy

La configurazione del server proxy per la distribuzione del servizio Azure Kubernetes include le impostazioni seguenti:

  • URL HTTP e porta, ad esempio http://proxy.corp.contoso.com:8080.
  • URL HTTPS e porta, ad esempio https://proxy.corp.contoso.com:8443.
  • (Facoltativo) Credenziali valide per l'autenticazione nel server proxy.
  • (Facoltativo) Catena di certificati valida se il server proxy è configurato per intercettare il traffico SSL. Questa catena di certificati verrà importata in tutti i nodi del piano di controllo del servizio Azure Kubernetes e del cluster di gestione per stabilire una connessione attendibile al server proxy.

Elenco di esclusione per escludere le subnet private dall'invio al proxy

La tabella seguente contiene l'elenco di indirizzi da escludere usando il -noProxy parametro in New-AksHciProxySetting.

Indirizzo IP Motivo dell'esclusione
localhost, 127.0.0.1 Traffico localhost
.svc Traffico del servizio Kubernetes interno, dove .svc rappresenta un nome con caratteri jolly. Questo è simile a , *.svcma nessuno viene usato in questo schema.
10.0.0.0/8 Spazio indirizzi di rete privato.
172.16.0.0/12 Spazio indirizzi di rete privata- CIDR del servizio Kubernetes.
192.168.0.0/16 Spazio indirizzi di rete privata- CIDR del pod Kubernetes.
.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, e così via.

Il valore predefinito per noProxy è localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16. Sebbene questi valori predefiniti funzionino per molte reti, potrebbe essere necessario aggiungere altri intervalli di subnet e/o nomi all'elenco di esenzioni. Ad esempio, è possibile esentare lo spazio dei nomi dell'organizzazione (con estensione contoso.com) dall'essere indirizzato tramite il proxy. A tale scopo, è possibile specificare i valori nell'elenco noProxy.

Impostare il proxy per i cluster locali di Azure e Windows Server con impostazioni proxy a livello di computer

Se si dispone già di impostazioni proxy a livello di computer nel cluster Locale di Azure/Windows Server, le impostazioni potrebbero eseguire l'override di tutte le impostazioni proxy specifiche del servizio Azure Kubernetes e causare un errore durante l'installazione.

Per rilevare se sono presenti impostazioni proxy a livello di computer, eseguire lo script seguente in ognuno dei nodi del cluster fisico:

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

Configurare le esclusioni proxy a livello di computer in ognuno degli host del cluster fisico in cui è stato rilevato il problema.

Eseguire lo script di PowerShell seguente e sostituire la stringa del $no_proxy parametro con una stringa di esclusione appropriata NO_PROXY per l'ambiente in uso. Per informazioni su come configurare correttamente un noProxy elenco per l'ambiente, vedere Elenco di esclusione per escludere le subnet private dall'invio al 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")

Nota

È consigliabile usare le stesse impostazioni proxy in tutti i nodi del cluster di failover. La presenza di impostazioni proxy diverse in nodi fisici diversi nel cluster di failover può causare risultati imprevisti o problemi di installazione. Inoltre, un indirizzo IP con un carattere jolly (*), ad esempio 172.*, non è valido. L'indirizzo IP deve trovarsi nella notazione CIDR corretta (172.0.0.0/8).

Installare i moduli di PowerShell AksHci

Configurare le impostazioni proxy di sistema in ognuno dei nodi fisici del cluster e assicurarsi che tutti i nodi abbiano accesso agli URL e alle porte descritti in Requisiti di sistema.

Se si usa PowerShell remoto, è necessario usare CredSSP.

Chiudere tutte le finestre di PowerShell aperte prima di eseguire il comando seguente:

Install-Module -Name AksHci -Repository PSGallery

Se l'ambiente usa un server proxy per accedere a Internet, potrebbe essere necessario aggiungere parametri proxy al comando Install-Module prima di installare il servizio Azure Kubernetes. Per informazioni dettagliate, vedere la documentazione di Install-Module e seguire la documentazione locale di Azure per configurare le impostazioni proxy nei nodi del cluster fisico.

Quando si scarica il modulo AksHci PowerShell, vengono scaricati anche i moduli Az PowerShell necessari per la registrazione di un host del servizio Azure Kubernetes con Azure per la fatturazione.

Configurare un host del servizio Azure Kubernetes per un server proxy con autenticazione di base

Se il server proxy richiede l'autenticazione, aprire PowerShell come amministratore ed eseguire il comando seguente per ottenere le credenziali e impostare i dettagli di configurazione:

$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

Configurare un host del servizio Azure Kubernetes per un server proxy senza autenticazione

Se il server proxy non richiede l'autenticazione, eseguire il comando seguente:

$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

Configurare un host del servizio Azure Kubernetes per un server proxy con un certificato attendibile

Se il server proxy richiede che i client proxy considerino attendibile un certificato, specificare il file del certificato quando si esegue Set-AksHciConfig. Il formato del file di certificato è con codifica Base 64 X .509. In questo modo è possibile creare e considerare attendibile il certificato in tutto lo stack.

Importante

Se il proxy richiede che un certificato sia considerato attendibile dai nodi fisici locali di Azure, assicurarsi di importare la catena di certificati nell'archivio certificati appropriato in ogni nodo locale di Azure prima di continuare. Seguire le procedure per la distribuzione per registrare i nodi locali di Azure con i certificati necessari per l'autenticazione 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 -credential $proxyCredential

Nota

I certificati proxy devono essere forniti come formato di file PFX (Personal Information Exchange) o stringa e contenere la catena di autorità radice per usare il certificato per l'autenticazione o per la configurazione del tunnel SSL.

Passaggi successivi

È ora possibile procedere con l'installazione del servizio Azure Kubernetes nel cluster locale di Azure o Windows Server, eseguendo seguito Set-AksHciConfig da Install-AksHci.