Mettre à niveau les modes IPAM Azure Kubernetes Service (AKS) et la technologie de plan de données
Étant donné qu’il existe toujours de nouveaux modes de Gestion des adresses IP (IPAM) et de la technologies de plan de données prenant en charge Azure Kubernetes Service (AKS), il est inévitable de passer par des situations dans lesquelles les clusters AKS existants doivent effectuer une mise à niveau vers des modes IPAM et une technologie de plan de données plus récents pour accéder aux dernières fonctionnalités et à la prise en charge. Cet article fournit des conseils sur la mise à niveau d’un cluster AKS existant pour utiliser la superposition Azure CNI pour le mode IPAM et Azure CNI optimisé par Cilium en tant que son plan de données.
Mettre à niveau un cluster existant vers la superposition Azure CNI
Remarque
Vous pouvez mettre à jour un cluster Azure CNI existant vers la superposition si le cluster répond aux critères suivants :
- Le cluster se trouve sur Kubernetes version 1.22+.
- Ne pas utiliser la fonctionnalité d’allocation d’adresses IP de pod dynamique.
- Ne doit pas présenter de stratégies réseau activées. Le moteur de stratégie réseau peut être désinstallé avant la mise à niveau. Consultez Désinstaller Azure Network Policy Manager ou Calico.
- Ne doit pas utiliser de pools de nœuds Windows avec Docker comme runtime de conteneur.
Remarque
La mise à niveau d’un cluster existant vers la superposition CNI est un processus non réversible.
Avertissement
Avant la version 20348.1668 du système d’exploitation Windows, il y avait une limitation relative aux pods Overlay Windows effectuant un SNAT incorrect des paquets depuis des pods réseau hôtes, ce qui a un effet plus néfaste pour la mise à niveau des clusters vers Overlay. Pour éviter ce problème, utilisez la build du système d’exploitation Windows supérieure ou égale à 20348.1668.
Avertissement
Si vous utilisez une configuration azure-ip-masq-agent personnalisée pour ajouter des plages IP supplémentaires qui ne doivent pas faire de traduction SNAT des paquets provenant des pods, la mise à niveau vers la superposition Azure CNI peut interrompre la connectivité vers ces plages. Les adresses IP de pod à partir de l’espace de superposition ne sont accessibles par rien en dehors des nœuds de cluster.
Par ailleurs, pour les clusters suffisamment anciens, il peut rester un ConfigMap d’une version précédente d’azure-ip-masq-agent. Si ce ConfigMap, nommé azure-ip-masq-agent-config
, existe et n’est pas intentionnellement sur place. Il doit être supprimé avant d’exécuter la commande update.
Si vous n’utilisez pas une configuration ip-masq-agent personnalisée, seul le azure-ip-masq-agent-config-reconciled
ConfigMap doit exister par rapport à Azure ip-masq-agent ConfigMaps, qui sera mis à jour automatiquement pendant le processus de mise à niveau.
Le processus de mise à niveau déclenche la réimage de chaque pool de nœuds simultanément. La mise à niveau de chaque pool de nœuds séparément vers overlay n’est pas prise en charge. Toutes les interruptions de mise en réseau de cluster sont similaires à une mise à niveau d’image de nœud ou à une mise à niveau de version de Kubernetes où chaque nœud d’un pool de nœuds est réimagé.
Mise à niveau de cluster Azure CNI
Mettez à jour un cluster Azure CNI existant pour utiliser la superposition en utilisant la commande [az aks update
][az-aks-update].
clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"
az aks update --name $clusterName \
--resource-group $resourceGroup \
--network-plugin-mode overlay \
--pod-cidr 192.168.0.0/16
Le paramètre --pod-cidr
est obligatoire lors de la mise à niveau à partir de CNI hérité, car les pods doivent obtenir des adresses IP depuis un nouvel espace de superposition qui ne chevauche pas le sous-réseau du nœud existant. Le CIDR du pod ne peut pas non plus chevaucher une adresse de réseau virtuel des pools de nœuds. Par exemple, si l’adresse de votre réseau virtuel est 10.0.0.0/8, et que vos nœuds se trouvent dans le sous-réseau 10.240.0.0.0/16, le --pod-cidr
ne peut pas chevaucher 10.0.0.0/8 ou le CIDR de service existant sur le cluster.
Mise à niveau de cluster Kubenet
Mettez à jour un cluster Kubenet existant pour utiliser la superposition Azure CNI en tirant parti de la commande [az aks update
][az-aks-update].
clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"
az aks update --name $clusterName \
--resource-group $resourceGroup \
--network-plugin azure \
--network-plugin-mode overlay
Comme le cluster utilise déjà un CIDR privé pour les pods qui ne chevauchent pas l’espace IP du réseau virtuel, vous n’avez pas besoin de spécifier le paramètre --pod-cidr
et le CIDR du pod va rester le même si le paramètre n’est pas utilisé.
Remarque
Lors d’une mise à niveau de Kubenet vers une superposition CNI, la table de route n’est plus nécessaire pour le routage de pods. Si le cluster utilise une table de route fournie par un client, les routes qui étaient utilisées pour diriger le trafic de pods vers le nœud correct sont automatiquement supprimées pendant l’opération de migration. Si le cluster utilise une table de route managée (la table de route a été créée par AKS et réside dans le groupe de ressources du nœud), cette table de route est supprimée dans le cadre de la migration.
Mettre à niveau un cluster existant vers Azure CNI avec Cilium
Remarque
Vous pouvez mettre à jour un cluster existant vers Azure CNI avec Cilium si le cluster répond aux critères suivants :
- Le cluster utilise la superposition Azure CNI ou Azure CNI avec allocation d’adresses IP dynamiques. Cela n’inclut pasAzure CNI.
- Le cluster n’a pas de pools de nœuds Windows.
Remarque
Lors de l’activation de Cilium dans un cluster avec un autre moteur de stratégie réseau (Azure NPM ou Calico), le moteur de stratégie réseau est désinstallé et remplacé par Cilium. Pour plus d’informations, consultez Désinstaller Azure Network Policy Manager ou Calico .
Avertissement
Le processus de mise à niveau déclenche la réimage de chaque pool de nœuds simultanément. La mise à niveau de chaque pool de nœuds séparément n’est pas prise en charge. Toutes les interruptions de mise en réseau de cluster sont similaires à une mise à niveau d’image de nœud ou à une mise à niveau de version de Kubernetes où chaque nœud d’un pool de nœuds est réimagé. Cilium ne commencera à appliquer les stratégies réseau qu’une fois que tous les nœuds auront été réinscrits.
Pour effectuer la mise à niveau, vous aurez besoin d’Azure CLI version 2.52.0 ou ultérieure. Exécutez az --version
pour vérifier la version installée. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.
Utilisez la commande suivante pour mettre à niveau un cluster existant vers Azure CNI avec Cilium. Remplacez les valeurs de <clusterName>
et <resourceGroupName>
:
az aks update --name <clusterName> --resource-group <resourceGroupName> \
--network-dataplane cilium
Azure Kubernetes Service