GNU/Linux >> Tutoriels Linux >  >> Linux

Un bref aperçu de l'interface réseau de conteneurs (CNI) dans Kubernetes

Si vous avez travaillé avec Kubernetes (K8s) et essayé d'apprendre certains de ses rouages, que ce soit sur le tas ou dans le cadre d'une formation, vous devez avoir appris un peu sur l'interface réseau de conteneurs (CNI). Cet article démystifie ce que signifie et fait CNI.

Qu'est-ce que le CNI ?

Un plug-in CNI est responsable de l'insertion d'une interface réseau dans l'espace de noms du réseau de conteneurs (par exemple, une extrémité d'une paire Ethernet virtuelle (veth)) et d'apporter les modifications nécessaires sur l'hôte (par exemple, en attachant l'autre extrémité du veth à un pont ). Il attribue ensuite une adresse IP à l'interface et configure les routes conformément à la section de gestion des adresses IP en appelant le plug-in de gestion des adresses IP (IPAM) approprié.

[ Vous pourriez également aimer : Un guide de l'administrateur système sur les composants de base de Kubernetes ]

Où se situe le CNI ?

CNI est utilisé par les environnements d'exécution de conteneurs, tels que Kubernetes (comme illustré ci-dessous), ainsi que Podman, CRI-O, Mesos et autres.

Le conteneur/pod n'a initialement pas d'interface réseau. L'environnement d'exécution du conteneur appelle le plug-in CNI avec des verbes tels que ADD , SUPPRIMER , VÉRIFIER , etc. ADD crée une nouvelle interface réseau pour le conteneur, et les détails de ce qui doit être ajouté sont transmis à CNI via la charge utile JSON.

En quoi consiste le projet CNI ?

  1. Spécifications CNI :documente le format de configuration lorsque vous appelez le plug-in CNI, ce qu'il doit faire de ces informations et le résultat que le plug-in doit renvoyer.
  2. Ensemble de plug-ins de référence et d'exemple :ils peuvent vous aider à comprendre comment écrire un nouveau plug-in ou comment les plug-ins existants peuvent fonctionner. Ils sont indépendants du cloud. Ce sont des plugins aux fonctionnalités limitées et juste pour référence.

Le cahier des charges CNI

  • Spécifications indépendantes du fournisseur
  • Utilisé par Mesos, CloudFoundry, Podman, CRI-O
  • Définit le flux d'exécution de base et le format de configuration
  • Essayez de garder les choses simples et rétrocompatibles

Flux d'exécution des plugins CNI

  1. Lorsque l'environnement d'exécution du conteneur s'attend à effectuer des opérations réseau sur un conteneur, il (comme le kubelet dans le cas de K8) appelle le plug-in CNI avec la commande souhaitée.
  2. L'environnement d'exécution du conteneur fournit également au plug-in une configuration réseau associée et des données spécifiques au conteneur.
  3. Le plug-in CNI effectue les opérations requises et signale le résultat.

CNI est appelé deux fois par K8s (kubelet) pour configurer le bouclage et eth0 interfaces pour un pod.

Remarque  :Les plugins CNI sont exécutables et prennent en charge les commandes ADD, DEL, CHECK, VERSION, comme indiqué ci-dessus.

Pourquoi y a-t-il plusieurs plug-ins ?

CNI fournit les spécifications de divers plugins. Et comme vous le savez, la mise en réseau est un sujet complexe avec une variété de besoins des utilisateurs. Par conséquent, il existe plusieurs plugins CNI qui font les choses différemment pour satisfaire divers cas d'utilisation.

[ Apprenez les bases de l'utilisation de Kubernetes dans cet aide-mémoire gratuit. ] 

Récapitulez

Il existe de nombreux aspects de l'orchestration et de la gestion des conteneurs avec Kubernetes. Vous venez d'en apprendre un peu plus sur l'utilisation de CNI pour la mise en réseau au sein de Kubernetes. Pour en savoir plus, consultez la page du projet CNI sur GitHub.


Linux
  1. Autorisez-vous le protocole X sur votre réseau ?

  2. Ajouter une interface réseau cloud à un serveur cloud

  3. Ifconfig :7 exemples pour configurer l'interface réseau

  4. Ubuntu activer et désactiver l'interface réseau

  5. Démarrer un shell dans le conteneur Docker Alpine

Ansible vs Kubernetes :comprendre les différences

Présentation de l'interface utilisateur Wireshark (GUI)

3 façons de configurer une interface réseau sous Linux

Une introduction au registre des conteneurs de Quay

Configuration du réseau

OpenShift vs Kubernetes - Comparaison des plates-formes de déploiement de conteneurs