Tutoriel : Configurer la CNI de votre cluster
Les clusters OKS sont déployés avec une interface réseau de conteneur (Container Network Interface ou CNI) par défaut afin d’assurer la communication réseau entre les pods Kubernetes.
Par défaut, OKS installe Cilium comme CNI du cluster. Cilium est déployé en remplacement complet de kube-proxy, ce qui signifie que kube-proxy n’est pas déployé sur les worker nodes.
La plupart des composants du cluster sont gérés par OKS et ne sont pas personnalisables. Vous pouvez toutefois personnaliser la configuration CNI de votre cluster. Ainsi, vous pouvez :
-
Choisir la version de Cilium à installer.
-
Mettre à jour la configuration CNI d’un cluster existant, à condition que la transition demandée soit prise en charge.
-
Désactiver l’installation par défaut de CNI pour installer et configurer votre propre CNI.
|
Comprendre la configuration de la CNI
Une interface réseau de conteneur (CNI) est un plugin réseau utilisé par Kubernetes pour assurer la connectivité réseau entre les pods et les autres composants du cluster.
Kubernetes nécessite un plugin CNI afin que :
-
Les pods puissent communiquer entre eux.
-
Les pods puissent communiquer avec les services.
-
Les politiques réseau puissent être appliquées.
-
La mise en réseau du cluster puisse fonctionner entre les worker nodes.
Cilium est installé par défaut en tant que CNI du cluster. Cilium est un plugin réseau Kubernetes qui assure la connectivité réseau, le routage des services et l’application des politiques réseau pour les charges de travail du cluster. Dans OKS, Cilium remplace également kube-proxy, ce qui signifie que le routage des services est géré directement par Cilium plutôt que par un composant kube-proxy distinct.
Versions de Cilium prises en charge
Vous pouvez choisir une version spécifique de Cilium prise en charge par OKS lors de la création d’un cluster ou lors de la mise à jour de la configuration CNI d’un cluster existant.
|
Lors de la mise à jour d’un cluster existant, les versions cibles disponibles dépendent de la configuration CNI actuelle. Pour en savoir plus, voir Mettre à jour la CNI d’un cluster existant > Matrice de compatibilité CNI. |
Les valeurs prises en charge sont les suivantes :
-
cilium-1.16 -
cilium-1.17 -
cilium-1.18 -
cilium-1.19
OKS déploie la version de Cilium sélectionnée et continue de la gérer.
Configurer un CNI sur votre cluster
Créer un cluster avec une version spécifique de Cilium avec OKS CLI
Avant de commencer :
|
Pour créer un cluster avec une version spécifique de Cilium, utilisez la commande cluster create avec l’option set cni :
$ oks-cli cluster create \
--profile NAME_OF_PROFILE \
--cluster-name NAME_OF_CLUSTER \
--project-name NAME_OF_PROJECT \
--set cni=CILIUM_VERSION
|
Pour en savoir plus, voir Créer un cluster et Versions de Cilum prises en charge. |
Installer manuellement un CNI sur un cluster
Pour installer et configurer votre propre CNI, désactivez d’abord la CNI gérée par OKS en définissant la configuration cni sur none.
Vous pouvez le faire soit :
-
Au moment de la création d’un cluster
-
En mettant à jour la configuration CNI d’un cluster existant, à condition que le passage à
nonesoit pris en charge. Pour en savoir plus, voir Mettre à jour la CNI d’un cluster existant > Matrice de compatibilité CNI.
|
Lorsque la configuration |
Désactiver la CNI par défaut sur votre cluster
Pour désactiver la CNI par défaut lors de la création d’un cluster, définissez l’option cni sur none :
|
Désactiver l’installation par défaut de la CNI est une option de configuration avancée :
|
$ oks-cli cluster create \
--profile NAME_OF_PROFILE \
--cluster-name NAME_OF_CLUSTER \
--project-name NAME_OF_PROJECT \
--set cni=none
|
Pour en savoir plus, voir Créer un cluster. |
Pour désactiver la CNI gérée par OKS sur un cluster existant, modifiez sa configuration CNI en indiquant none. Pour en savoir plus, voir Configurer une CNI sur votre cluster > Mettre à jour la CNI d’un cluster existant.
Installer Cilium manuellement sur votre cluster
Avant de commencer :
|
Une fois que la configuration cni de votre cluster est définie sur none, vous pouvez y installer manuellement une version de Cilium. Dans ce cas, vous serez responsable du déploiement, de la configuration, de la mise à jour et de la maintenance de Cilium.
|
-
Installez la version souhaitée de Cilium :
Exemple de requête$ cilium install --version CILIUM_VERSIONCilium détecte automatiquement que
kube-proxyn’est pas installé et remplace intégralement ses fonctionnalités.Pour en savoir plus, voir Versions de Cilum prises en charge.
-
Appliquez un manifeste de node pool pour créer des worker nodes pour le cluster :
Exemple de requête$ kubectl apply -f NODEPOOL_MANIFEST.yaml-
Pour en savoir plus sur la rédaction d’un manifeste de node pool, voir Référence des manifestes de node pool.
-
Les pods Cilium restent à l’état
Pendingjusqu’à ce que des worker nodes soient disponibles dans le cluster.
-
-
Vérifiez que les worker nodes sont à l’état
Ready:Exemple de requête$ kubectl get nodes -
Vérifiez que Cilium fonctionne correctement :
Exemple de requête$ cilium statusCilium est correctement installé lorsque les composants
Cilium,OperatoretEnvoy DaemonSetsont à l’étatOK. -
Vérifiez la connectivité réseau :
Exemple de requête$ cilium connectivity test
Mettre à jour la CNI d’un cluster existant
Vous pouvez mettre à jour la configuration CNI d’un cluster existant. La configuration cible prise en charge dépend de la configuration CNI actuellement utilisée par le cluster.
Matrice de compatibilité CNI
Avant de mettre à jour la configuration CNI, vérifiez que la migration de votre version actuelle de CNI vers la version cible est prise en charge.
| CNI actuelle | Cible de CNI prise en charge |
|---|---|
|
None |
|
|
|
|
|
|
|
|
Mettre à jour la CNI d’un cluster existant avec OKS CLI
-
Mettez à jour la configuration CNI du cluster en indiquant la version CNI souhaitée :
Exemple de requête$ oks-cli cluster update \ --cluster-name NAME_OF_CLUSTER \ --set cni=CILIUM_VERSIONCette commande contient les options suivantes que vous devez spécifier :
-
cluster-name: Le nom du cluster. -
set: L’option de configuration à mettre à jour. Définissezcni=CILIUM_VERSION, oùCILIUM_VERSIONcorrespond à la configuration CNI souhaitée, par exemplecilium-1.18. Pour en savoir plus, voir la Matrice de compatibilité CNI.
-
-
Mettez à jour le cluster pour appliquer la nouvelle configuration CNI :
Exemple de requête$ oks-cli cluster upgrade \ --cluster-name NAME_OF_CLUSTERLa mise à jour peut prendre plusieurs minutes.
Vous pouvez surveiller le cluster pendant la mise à niveau avec :
$ oks-cli cluster list \ --project-name NAME_OF_PROJECT \ --output wCette commande contient les options suivantes que vous devez spécifier :
-
NAME_OF_PROJECT: Le nom du projet contenant le cluster. -
-w: Surveille la liste des clusters et actualise l’affichage lorsque l’état d’un cluster change.
-
-
Une fois la mise à jour terminée, répertoriez les pods Cilium en cours d’exécution dans l’espace de noms
kube-system:Exemple de requête$ kubectl get pods -n kube-system -l k8s-app=cilium -
Vérifiez la version de Cilium en cours d’exécution sur l’un des pods :
Exemple de requête$ kubectl describe pod -n kube-system <CILIUM_POD> | grep ImageCette commande contient les options suivantes que vous devez spécifier :
-
CILIUM_POD: Le nom de l’un des pods Cilium renvoyé à l’étape précédente. -
grep Image: Filtre la sortie de la commande afin de n’afficher que les lignes contenantImage, pour plus de clarté.La version de l’image correspond à la version de Cilium actuellement en cours d’exécution sur le cluster.
-
Vérifier votre configuration CNI avec kubectl
-
Une fois la configuration mise en place sur votre cluster, quelle que soit la méthode utilisée, vous pouvez vérifier la configuration CNI en récupérant votre fichier
kubeconfig:Exemple de requête$ export KUBECONFIG=`oks-cli cluster kubeconfig \ --project-name NOM_DU_PROJET \ --cluster-name NOM_DU_CLUSTER \ --print-path` -
Vérifiez les ressources déployées dans le namespace
kube-system:Exemple de requête$ kubectl get deployment -n kube-system
Si la CNI par défaut est installé, les ressources Cilium seront présentes dans le cluster.
|
Vous pouvez également vérifier son état à l’aide de la commande suivante : Exemple de requête
|
Pages connexes