Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Configurare
kube-proxy
è un componente di Kubernetes che gestisce il traffico di routing per i servizi all'interno del cluster. Sono disponibili due back-end per il bilanciamento del carico di livello 3/4 in upstream kube-proxy
: iptables e IPVS.
- iptables è il back-end predefinito usato nella maggior parte dei cluster Kubernetes. È semplice e ben supportato, ma non altrettanto efficiente o intelligente come IPVS.
- IPVS usa il server virtuale Linux, un servizio di bilanciamento del carico di livello 3/4 integrato nel kernel Linux. IPVS offre numerosi vantaggi rispetto alla configurazione iptables predefinita, tra cui consapevolezza dello stato, rilevamento delle connessioni e bilanciamento del carico più intelligente. IPVS non supporta Criteridi rete di Azure.
Per altre informazioni, vedere la documentazione di Kubernetes su kube-proxy.
Nota
Se si vuole, è possibile disabilitare il DaemonSet kube-proxy
gestito dal servizio Azure Kubernetes per supportare l'interfaccia CNI bring-your-own.
Importante
Le funzionalità di anteprima del servizio Azure Kubernetes sono disponibili in modalità self-service e opzionale. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime del servizio Azure Kubernetes sono parzialmente coperte dal supporto clienti con la massima diligenza possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:
Operazioni preliminari
- Se si usa l'interfaccia della riga di comando di Azure, è necessaria l'estensione
aks-preview
. Vedere Installare l'aks-preview
estensione dell'interfaccia della riga di comando di Azure. - Se si usa ARM o l'API REST, la versione dell'API del servizio Azure Kubernetes deve essere 2022-08-02-preview o successiva..
- È necessario registrare il flag di funzionalità
KubeProxyConfigurationPreview
. Vedere Registrare ilKubeProxyConfigurationPreview
flag di funzionalità.
Installare l'estensione aks-preview
dell'interfaccia della riga di comando di Azure.
Installare l'
aks-preview
estensione usando il comandoaz extension add
.az extension add --name aks-preview
Aggiornare alla versione più recente dell'estensione usando il comando
az extension update
.az extension update --name aks-preview
Registrare il flag di funzionalità KubeProxyConfigurationPreview
Registrare il flag di funzionalità
KubeProxyConfigurationPreview
usando il comandoaz feature register
.az feature register --namespace "Microsoft.ContainerService" --name "KubeProxyConfigurationPreview"
Sono necessari alcuni minuti per visualizzare lo stato Registered.
Verificare lo stato della registrazione usando il comando
az feature show
.az feature show --namespace "Microsoft.ContainerService" --name "KubeProxyConfigurationPreview"
Quando lo stato diventa Registrato, aggiornare la registrazione del provider di risorse Microsoft.ContainerService usando il comando
az provider register
.az provider register --namespace Microsoft.ContainerService
Opzioni di configurazione kube-proxy
È possibile visualizzare la struttura di configurazione completa kube-proxy
nello schema del cluster del servizio Azure Kubernetes .
enabled
: determina la distribuzione delkube-proxy
DaemonSet. Il valore predefinito ètrue
.mode
: è possibile impostare suIPTABLES
oIPVS
. Il valore predefinito èIPTABLES
.ipvsConfig
: semode
èIPVS
, questo oggetto contiene proprietà di configurazione specifiche di IPVS.scheduler
: determina l'utilità di pianificazione della connessione da usare. I valori supportati includono:LeastConnection
: invia connessioni al pod back-end con le connessioni più poche.RoundRobin
: distribuisce uniformemente le connessioni tra i pod back-end.
tcpFinTimeoutSeconds
: imposta il valore di lunghezza del timeout dopo che una sessione TCP riceve una fin.tcpTimeoutSeconds
: imposta il valore di lunghezza del timeout per le sessioni TCP inattive.udpTimeoutSeconds
: imposta il valore di lunghezza del timeout per le sessioni UDP inattive.
Nota
Il bilanciamento del carico IPVS opera in ogni nodo in modo indipendente ed è a conoscenza solo delle connessioni che passano attraverso il nodo locale. Ciò significa che, mentre il LeastConnection
da come risultato un carico più uniforme con un numero di connessioni più elevato, quando si verifica un numero basso di connessioni (# connessioni < 2 * numero di nodi), il traffico può essere relativamente sbilanciato
Utilizzare kube-proxy
in un cluster del servizio AKS nuovo o esistente
kube-proxy
la configurazione è un'impostazione a livello di cluster. Non è necessario aggiornare i servizi.
Avviso
La modifica della configurazione kube-proxy può causare un'interruzione lieve del flusso del traffico del servizio cluster.
Creare un file di configurazione con la configurazione desiderata
kube-proxy
. Ad esempio, la configurazione seguente abilita IPVS con l'utilitàLeastConnection
di pianificazione e imposta il timeout TCP su 900 secondi.{ "enabled": true, "mode": "IPVS", "ipvsConfig": { "scheduler": "LeastConnection", "TCPTimeoutSeconds": 900, "TCPFINTimeoutSeconds": 120, "UDPTimeoutSeconds": 300 } }
Creare un nuovo cluster o aggiornare un cluster esistente con il file di configurazione usando il comando
az aks create
oaz aks update
con il parametro--kube-proxy-config
impostato sul file di configurazione.# Create a new cluster az aks create \ --resource-group <resourceGroup> \ --name <clusterName> \ --kube-proxy-config kube-proxy.json \ --generate-ssh-keys # Update an existing cluster az aks update \ --resource-group <resourceGroup> \ --name <clusterName> \ --kube-proxy-config kube-proxy.json
Passaggi successivi
Questo articolo ha illustrato come configurare kube-proxy
nel servizio Azure Kubernetes (AKS). Per altre informazioni sul bilanciamento del carico nel servizio Azure Kubernetes, vedere gli articoli seguenti:
Azure Kubernetes Service