Tutoriel : Créer un cluster avec une configuration CNI personnalisée

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. Cependant, la configuration de la CNI peut être personnalisée lors de la création du cluster. Vous pouvez donc soit :

  • Choisir la version de Cilium à installer,

  • Désactiver l’installation par défaut de CNI pour installer et configurer votre propre CNI.

  • Désactiver l’installation par défaut de la CNI rend le cluster inopérant jusqu’à ce que vous installiez et configuriez manuellement votre propre CNI.

  • Cette option est réservée aux utilisateurs avancés. Elle n’est pas recommandée aux utilisateurs novices, car vous devrez réparer et configurer vous-même le réseau du cluster avant que les charges de travail puissent communiquer correctement.

Comprendre la configuration du 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

Lors de la création d’un cluster, vous pouvez choisir une version spécifique de Cilium prise en charge par OKS.

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 :

Exemple de requête
$ oks-cli cluster create \
    --profile NAME_OF_PROFILE \
    --cluster-name NAME_OF_CLUSTER \
    --project-name NAME_OF_PROJECT \
    --set cni=CILIUM_VERSION

Installer manuellement un CNI sur un cluster

Désactiver le CNI par défaut sur votre cluster

Pour installer et configurer votre propre CNI, vous devez d’abord désactiver l’installation par défaut du CNI en créant un cluster avec l’option set cni définie sur none :

Désactiver l’installation par défaut du CNI est une option de configuration avancée :

  • OKS n’installera pas Cilium lors de la création du cluster. Le réseau du cluster ne sera donc pas opérationnel tant que vous n’aurez pas installé et configuré manuellement votre propre CNI.

  • Les pods ne pourront pas communiquer correctement, et certains composants du cluster pourraient rester indisponibles ou présenter un état de santé défaillant.

  • Vous serez responsable de la configuration, de la mise à jour, de la mise à niveau et du dépannage de votre CNI. OKS ne gère pas les installations CNI personnalisées.

Exemple de requête
$ 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.

Installer Cilium manuellement sur votre cluster

Avant de commencer :

  • Installez Cilium CLI.

  • Assurez-vous que votre variable KUBECONFIG pointe vers le cluster créé avec cni=none :

    Exemple de requête
    $ export KUBECONFIG=$(oks-cli cluster kubeconfig \
      --project-name NOM_DU_PROJET \
      --cluster-name NOM_DU_CLUSTER \
      --print-path)

Une fois votre cluster créé avec l’option cni 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.

  • 3DS OUTSCALE ne se chargera pas de mettre à jour, de faire évoluer ou de reconfigurer cette installation CNI à votre place.

  • Cette section fournit un exemple utilisant Cilium. Si vous souhaitez installer un autre CNI, suivez la documentation officielle du plugin réseau sélectionné et assurez-vous qu’il offre les fonctionnalités réseau requises par votre cluster.

  1. Installez la version souhaitée de Cilium :

    Exemple de requête
    $ cilium install --version CILIUM_VERSION

    Cilium détecte automatiquement que kube-proxy n’est pas installé et remplace intégralement ses fonctionnalités.

    Pour en savoir plus, voir Versions de Cilum prises en charge.

  2. 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 Pending jusqu’à ce que des worker nodes soient disponibles dans le cluster.

  3. Vérifiez que les worker nodes sont à l’état Ready :

    Exemple de requête
    $ kubectl get nodes
  4. Vérifiez que Cilium fonctionne correctement :

    Exemple de requête
    $ cilium status

    Cilium est correctement installé lorsque les composants Cilium, Operator et Envoy DaemonSet sont à l’état OK.

  5. Vérifiez la connectivité réseau :

    Exemple de requête
    $ cilium connectivity test

Vérifier votre configuration CNI avec kubectl

  1. 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`
  2. Vérifiez les ressources déployées dans le namespace kube-system :

    Exemple de requête
    $ kubectl get deployment -n kube-system

Si le 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
$ cilium status

Pages connexes