GNU/Linux >> Znalost Linux >  >> Linux

Stručný přehled rozhraní CNI (Container Network Interface) v Kubernetes

Pokud jste pracovali s Kubernetes (K8s) a pokoušeli se naučit některé z jeho vnitřních funkcí, ať už v práci nebo na školení, museli jste se naučit něco o kontejnerovém síťovém rozhraní (CNI). Tento článek demystifikuje, co CNI znamená a co dělá.

Co je CNI?

Zásuvný modul CNI je zodpovědný za vložení síťového rozhraní do jmenného prostoru kontejnerové sítě (např. jeden konec virtuálního ethernetového páru (veth) a provedení všech nezbytných změn na hostiteli (např. připojení druhého konce veth k mostu). ). Poté přiřadí IP adresu rozhraní a nastaví trasy v souladu se sekcí Správa IP adres vyvoláním příslušného pluginu IP Address Management (IPAM).

[ Také by se vám mohlo líbit: Příručka správce systému k základním komponentám Kubernetes ]

Kam patří CNI?

CNI používají běhová prostředí kontejnerů, jako je Kubernetes (jak je uvedeno níže), stejně jako Podman, CRI-O, Mesos a další.

Kontejner/pod zpočátku nemá žádné síťové rozhraní. Runtime kontejneru volá plugin CNI pomocí sloves jako ADD , DEL , ZKONTROLUJTE , atd. ADD vytvoří nové síťové rozhraní pro kontejner a podrobnosti o tom, co má být přidáno, jsou předány CNI prostřednictvím datové části JSON.

Z čeho se skládá projekt CNI?

  1. Specifikace CNI – Dokumentuje, jaký je formát konfigurace, když zavoláte plugin CNI, co by měl udělat s těmito informacemi a výsledek, který by měl plugin vrátit.
  2. Sada referenčních a ukázkových pluginů – Mohou vám pomoci pochopit, jak napsat nový plugin nebo jak mohou fungovat stávající pluginy. Jsou cloud-agnostici. Jedná se o pluginy s omezenou funkčností a jsou pouze pro informaci.

Specifikace CNI

  • Specifikace neutrální vůči dodavateli
  • Používají Mesos, CloudFoundry, Podman, CRI-O
  • Definuje základní tok provádění a formát konfigurace
  • Snažte se udržet věci jednoduché a zpětně kompatibilní

Tok spouštění zásuvných modulů CNI

  1. Když runtime kontejneru očekává, že bude provádět síťové operace na kontejneru, (jako kubelet v případě K8) zavolá plugin CNI s požadovaným příkazem.
  2. Běhové prostředí kontejneru poskytuje pluginu také související konfiguraci sítě a data specifická pro kontejner.
  3. Plugin CNI provede požadované operace a nahlásí výsledek.

K8s (kubelet) volá CNI dvakrát, aby nastavil loopback a eth0 rozhraní pro modul.

Poznámka :Zásuvné moduly CNI jsou spustitelné a podporují příkazy ADD, DEL, CHECK, VERSION, jak je uvedeno výše.

Proč existuje více pluginů?

CNI poskytuje specifikace pro různé pluginy. A jak víte, vytváření sítí je složité téma s různými potřebami uživatelů. Existuje tedy několik zásuvných modulů CNI, které dělají věci jinak, aby uspokojily různé případy použití.

[ Naučte se základy používání Kubernetes v tomto bezplatném cheatu. ] 

Sbalit

S Kubernetes existuje mnoho aspektů orchestrace a správy kontejnerů. Právě jste se dozvěděli něco o použití CNI pro vytváření sítí v rámci Kubernetes. Další informace najdete na stránce projektu CNI na GitHubu.


Linux
  1. Jak restartovat síťové rozhraní?

  2. Najít počítač v síti LAN?

  3. Vysvětlení konfiguračního souboru síťového rozhraní /etc/sysconfig/network-scripts/ifcfg-eth#

  1. Povolujete protokol X ve vaší síti?

  2. Spuštění shellu v kontejneru Docker Alpine

  3. Jak nastavit preferované síťové rozhraní v linuxu

  1. Přidejte cloudové síťové rozhraní ke cloudovému serveru

  2. Ifconfig:7 příkladů konfigurace síťového rozhraní

  3. Ubuntu povoluje a zakazuje síťové rozhraní