GNU/Linux >> Linux Esercitazione >  >> Linux

Una breve panoramica della Container Network Interface (CNI) a Kubernetes

Se hai lavorato con Kubernetes (K8s) e hai provato a imparare alcuni dei suoi meccanismi interni, sul lavoro o in un corso di formazione, devi aver imparato qualcosa su Container Network Interface (CNI). Questo articolo demistifica cosa significa e cosa fa CNI.

Cos'è CNI?

Un plug-in CNI è responsabile dell'inserimento di un'interfaccia di rete nello spazio dei nomi della rete del contenitore (ad esempio, un'estremità di una coppia ethernet virtuale (veth)) e di apportare le modifiche necessarie sull'host (ad esempio, collegando l'altra estremità del veth a un bridge ). Quindi assegna un indirizzo IP all'interfaccia e imposta i percorsi coerenti con la sezione Gestione degli indirizzi IP richiamando il plug-in di gestione degli indirizzi IP (IPAM) appropriato.

[ Potrebbe piacerti anche: Una guida per l'amministratore di sistema ai componenti di base di Kubernetes ]

Dove si inserisce CNI?

CNI viene utilizzato dai runtime dei container, come Kubernetes (come mostrato di seguito), nonché Podman, CRI-O, Mesos e altri.

Il contenitore/pod inizialmente non ha un'interfaccia di rete. Il runtime del contenitore chiama il plug-in CNI con verbi come ADD , CANC , CONTROLLA , ecc. ADD crea una nuova interfaccia di rete per il container e i dettagli di ciò che deve essere aggiunto vengono passati a CNI tramite il payload JSON.

In cosa consiste il progetto CNI?

  1. Specifiche CNI - Documenta qual è il formato di configurazione quando chiami il plug-in CNI, cosa dovrebbe fare con tali informazioni e il risultato che il plug-in dovrebbe restituire.
  2. Set di plug-in di riferimento e di esempio:possono aiutarti a capire come scrivere un nuovo plug-in o come potrebbero funzionare i plug-in esistenti. Sono indipendenti dal cloud. Questi sono plugin con funzionalità limitate e solo per riferimento.

Le specifiche CNI

  • Specifiche indipendenti dal fornitore
  • Utilizzato da Mesos, CloudFoundry, Podman, CRI-O
  • Definisce il flusso di esecuzione di base e il formato di configurazione
  • Cerca di mantenere le cose semplici e compatibili con le versioni precedenti

Flusso di esecuzione dei plugin CNI

  1. Quando il runtime del container prevede di eseguire operazioni di rete su un container, (come il kubelet nel caso di K8s) chiama il plug-in CNI con il comando desiderato.
  2. Il runtime del contenitore fornisce anche la configurazione di rete correlata e i dati specifici del contenitore al plug-in.
  3. Il plug-in CNI esegue le operazioni richieste e riporta il risultato.

CNI viene chiamato due volte da K8s (kubelet) per impostare loopback e eth0 interfacce per un pod.

Nota :i plugin CNI sono eseguibili e supportano i comandi ADD, DEL, CHECK, VERSION, come discusso sopra.

Perché ci sono più plugin?

CNI fornisce le specifiche per vari plugin. E come sapete, il networking è un argomento complesso con una varietà di esigenze degli utenti. Quindi, ci sono più plugin CNI che fanno le cose in modo diverso per soddisfare vari casi d'uso.

[ Impara le basi dell'uso di Kubernetes in questo cheat sheet gratuito. ] 

Concludi

Esistono molti aspetti dell'orchestrazione e della gestione dei container con Kubernetes. Hai appena imparato qualcosa sull'utilizzo di CNI per il networking all'interno di Kubernetes. Per ulteriori informazioni, consulta la pagina del progetto CNI su GitHub.


Linux
  1. Consenti il ​​protocollo X sulla tua rete?

  2. Come riavviare un'interfaccia di rete?

  3. Aggiungi un'interfaccia di rete cloud a un server cloud

  4. Ubuntu abilita e disabilita l'interfaccia di rete

  5. Come impostare l'interfaccia di rete preferita in Linux

Ansible vs Kubernetes:capire le differenze

Panoramica dell'interfaccia utente (GUI) di Wireshark

3 modi per configurare un'interfaccia di rete in Linux

Un'introduzione al registro dei container Quay

Configurazione di rete

OpenShift vs Kubernetes – Confronto della piattaforma di distribuzione dei container