Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Configurer
kube-proxy
est un composant de Kubernetes qui gère le routage du trafic pour les services au sein du cluster. Deux back-ends sont disponibles pour l’équilibrage de charge de couche 3/4 en amont kube-proxy
: iptables et IPVS.
- iptables est le serveur principal par défaut utilisé dans la majorité des clusters Kubernetes. Il est simple et bien pris en charge, mais n’est pas aussi efficace ni intelligent qu’IPVS.
- IPVS utilise le serveur virtuel Linux, un équilibreur de charge de couche 3/4 intégré au noyau Linux. IPVS offre un certain nombre d’avantages par rapport à la configuration iptables par défaut, notamment la reconnaissance de l’état, le suivi des connexions et un équilibrage de charge plus intelligent. IPVS ne prend pas en charge Azure Network Policy.
Pour plus d’informations, consultez la documentation de Kubernetes sur kube-proxy.
Remarque
Si vous le souhaitez, vous pouvez désactiver le DaemonSet kube-proxy
géré par AKS pour prendre en charge bring-your-own CNI.
Important
Les fonctionnalités d’évaluation AKS sont disponibles en libre-service et font l’objet d’un abonnement. Les préversions sont fournies « en l’état » et « en fonction des disponibilités », et sont exclues des contrats de niveau de service et de la garantie limitée. Les préversions AKS sont, dans la mesure du possible, partiellement couvertes par le service clientèle. Telles quelles, ces fonctionnalités ne sont pas destinées à une utilisation en production. Pour plus d’informations, consultez les articles de support suivants :
Avant de commencer
- Si vous utilisez Azure CLI, vous avez besoin de l’extension
aks-preview
. Consultez Installer l’extensionaks-preview
Azure CLI. - Si vous utilisez ARM ou l’API REST, la version de l’API AKS doit être 2022-08-02-preview ou une version ultérieure.
- Vous devez inscrire l’indicateur de fonctionnalité
KubeProxyConfigurationPreview
. Consultez Inscrire l’indicateur de fonctionnalitéKubeProxyConfigurationPreview
.
Installer l’extension Azure CLI aks-preview
Installez l'extension
aks-preview
à l'aide de la commandeaz extension add
.az extension add --name aks-preview
Mettez à jour vers la dernière version de l’extension à l’aide de la commande
az extension update
.az extension update --name aks-preview
Inscrire l’indicateur de fonctionnalité KubeProxyConfigurationPreview
Inscrivez l’indicateur de fonctionnalité
KubeProxyConfigurationPreview
à l’aide de la commandeaz feature register
.az feature register --namespace "Microsoft.ContainerService" --name "KubeProxyConfigurationPreview"
Quelques minutes sont nécessaires pour que l’état s’affiche Registered (Inscrit).
Vérifiez l’état de l’inscription en utilisant la commande
az feature show
.az feature show --namespace "Microsoft.ContainerService" --name "KubeProxyConfigurationPreview"
Quand l’état reflète Inscrit, actualisez l’inscription du fournisseur de ressources Microsoft.ContainerService à l’aide de la commande
az provider register
.az provider register --namespace Microsoft.ContainerService
Options de configuration de kube-proxy
Vous pouvez afficher la structure de configuration complète kube-proxy
dans le schéma de cluster AKS.
enabled
: détermine le déploiement du DaemonSetkube-proxy
. La valeur par défaut esttrue
.mode
: vous pouvez le définir surIPTABLES
ouIPVS
. La valeur par défaut estIPTABLES
.ipvsConfig
: simode
a la valeurIPVS
, cet objet contient des propriétés de configuration spécifiques à IPVS.scheduler
: détermine le planificateur de connexion à utiliser. Les valeursLeastConnection
envoie les connexions au pod back-end avec le moins de connexions.RoundRobin
: répartit uniformément les connexions entre les pods back-end.
tcpFinTimeoutSeconds
: définit la valeur de délai d’expiration après qu’une session TCP a reçu un FIN.tcpTimeoutSeconds
: définit la valeur de délai d’expiration pour les sessions TCP inactives.udpTimeoutSeconds
: définit la valeur de délai d’expiration pour les sessions UDP inactives.
Remarque
L’équilibrage de charge IPVS fonctionne dans chaque nœud indépendamment et ne prend en compte que les connexions transitant par le nœud local. Cela signifie que, bien que LeastConnection
donne une charge plus équilibrée avec un nombre plus élevé de connexions, lorsque le nombre de connexions est faible (nombre de connexions < 2 X nombre de nœuds), le trafic peut être relativement déséquilibré.
Utiliser kube-proxy
dans un cluster AKS nouveau ou existant
La configuration kube-proxy
est un paramètre à l’échelle du cluster. Vous n’avez pas besoin de mettre vos services à jour.
Avertissement
La modification de la configuration kube-proxy peut entraîner une légère interruption du flux de trafic de service du cluster.
Créez un fichier de configuration avec la configuration
kube-proxy
souhaitée. Par exemple, la configuration suivante active IPVS avec le planificateurLeastConnection
et définit le délai d’attente TCP sur 900 secondes.{ "enabled": true, "mode": "IPVS", "ipvsConfig": { "scheduler": "LeastConnection", "TCPTimeoutSeconds": 900, "TCPFINTimeoutSeconds": 120, "UDPTimeoutSeconds": 300 } }
Créez un cluster ou mettez à jour un cluster existant avec le fichier de configuration à l’aide de la commande
az aks create
ouaz aks update
avec le paramètre--kube-proxy-config
défini sur le fichier de configuration.# 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
Étapes suivantes
Cet article explique comment configurer kube-proxy
dans Azure Kubernetes Service (AKS). Pour en savoir plus sur l’équilibrage de charge dans AKS, consultez les articles suivants :
Azure Kubernetes Service