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 i passaggi per configurare il supporto proxy nel servizio Azure Kubernetes usando il modulo AksHci 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 Stack HCI e creare cluster Kubernetes usando PowerShell.

Prima di iniziare

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 al 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 il 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 al detto *.svc, ma nessuno viene usato in questo schema.
10.0.0.0/8 Spazio indirizzi di rete privata.
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 la proprietà noProxy è localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16. Anche se questi valori predefiniti funzionano per molte reti, potrebbe essere necessario aggiungere altri intervalli di subnet e/o nomi all'elenco di esenzione. Ad esempio, è possibile escludere 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 Azure Stack HCI e Windows Server con le impostazioni proxy a livello di computer

Se nel cluster Azure Stack HCI/Windows Server sono già presenti impostazioni proxy a livello di computer, le impostazioni potrebbero eseguire l'override di eventuali 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 ogni 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 potrebbe causare risultati imprevisti o problemi di installazione. Inoltre, un indirizzo IP con un carattere jolly (*), ad esempio 172.*, non è valido. L'indirizzo IP deve essere 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 di Azure Stack HCI 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 l'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 ai client proxy di considerare 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 di Azure Stack HCI, assicurarsi di importare la catena di certificati nell'archivio certificati appropriato in ogni nodo Azure Stack HCI prima di continuare. Seguire le procedure per la distribuzione per registrare i nodi Azure Stack HCI 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 contengono 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 Azure Stack HCI o Windows Server eseguendo Set-AksHciConfig seguito da Install-AksHci.