Jak vytvořit CRD v Kubernetes

Jak Vytvorit Crd V Kubernetes



V tomto článku se naučíme vytvářet CRD v Kubernetes. V tomto tutoriálu vás provedeme, jak vytvořit CRD v Kubernetes a poté vytvořit řadič Kubernetes, který bude použit ke zpracování požadavků na vytvoření instance CRD. Každý krok předvedeme pomocí příkladů, které vám pomohou zcela porozumět fungování vytváření CRD spolu s objektem řadiče pro zpracování CRD v Kubernetes. Tak začněme!

Co je CRD v Kubernetes?

CRD znamená Custom Resource Definition používanou pro nové zdroje bez přidání dalšího API serveru. Chcete-li pracovat s CRD, nemusíte rozumět agregaci API. Je to velmi výkonná funkce představená v Kubernetes 1.7, která se dodává s různými vestavěnými prostředky a objekty API. Umožňuje vám definovat vlastní zdroje se schématem a názvem podle vašeho výběru.

CRD rozšiřují schopnosti Kubernetes API nad rámec výchozí instalace pomocí vlastních definic prostředků. Pomocí CRD můžete vést Kubernetes způsobem, který zvládne více než jen kontejnery. Pomocí vlastních ovladačů můžete vytvořit vlastní zdroj podle vlastního výběru a učinit jej deklarativním. Nyní se naučíme, jak vytvořit vlastní definici prostředku a poté navrhnout vlastní ovladač pro řízení CRD. A pak, jak odstranit CDR, abyste viděli jeho dopad na Kubernetes.







Předpoklad

Než přejdeme ke krokům vytváření a mazání CRD, ujistěte se, že náš systém splňuje všechny potřeby nezbytných předpokladů.



  • Ubuntu 20.04 nebo jakákoli jiná nejnovější verze, aby fungovalo prostředí Linux/Unix.
  • Klastr Kubernetes.
  • Kubectl CLI pro použití příkazů kubectl, komunikaci s clustery a správu vývojového prostředí.
  • minikube nebo jakékoli jiné hřiště Kubernetes pro vytváření clusterů

Nainstalujte tyto nástroje, pokud jste je ještě nenainstalovali, než budete pokračovat k další části.



Nyní přejdeme k podrobnému průvodci, jak vytvořit CRD v Kubernetes.





Krok # 1: Spusťte Kubernetes

Chcete-li pracovat s CDR, musíte mít cluster s alespoň dvěma uzly Kubernetes, které nefungují jako hostitelé řídicí roviny. K vytvoření a použití clusteru používáme minikube. Ke spuštění minikube tedy použijte příkaz uvedený níže:

> spustit minikube

Po provedení tohoto příkazu získáte výstup podobný tomu, který je uveden níže:



Krok č. 2: Otevřete nebo vytvořte konfigurační soubor

Nyní, když je náš minikube v provozu, otevřeme konfigurační soubor. Příkaz ‚nano‘ se používá k otevření konfiguračních souborů. Vše, co musíte udělat, je zadat název souboru vedle příkazu nano následovaný příponou souboru a stisknout enter. Zde máme soubor „red.yaml“, který obsahuje podrobnosti o konfiguraci pro vytvoření CRD. Zde je úplný příkaz nano, který můžete použít k otevření požadovaného souboru:

> nano red.yaml

Po provedení tohoto příkazu se ve vašem terminálu otevře následující soubor:

Krok č. 3: Vytvořte prostředek koncového bodu

Prostředky konfigurace byly uloženy v souboru red.yaml. Použijeme to k vytvoření nového koncového bodu RESTful API s jmenným prostorem. Kubectl poskytuje příkaz „použít“ k vytvoření koncového bodu z konfiguračního souboru. Zde je úplný příkaz „použít“, který se používá k vytvoření nového RESTful API s jmenným prostorem:

> kubectl aplikovat -F red.yaml

Koncový bod vytvořený tímto příkazem bude použit k vytvoření vlastního objektu, který bude řídit CRD. Pro zdroj v oboru názvů bude vygenerován následující výstup:

Krok č. 4: Vytvořte vlastní objekt pro ovládání CRD

CRD jsou řízeny uživatelskými objekty. Můžeme je vytvořit po vytvoření vlastní definice zdroje. Vlastní objekty obsahují vlastní pole libovolného JSON. K vytvoření vlastního objektu opět potřebujeme konfigurační soubor YAML. Pomocí příkazu „nano“ vytvořte konfigurační soubor YAML:

> nano ct.yaml

Uložte požadovaná pole s konkrétními podrobnostmi do souboru YAML. Podrobnosti o ukázkové konfiguraci jsou uvedeny v ukázce níže:

Nyní použijte stejný soubor YAML k vytvoření vlastního objektu. Pomocí příkazu „použít“ vytvořte vlastní objekt ze zadaného souboru YAML. Podívejte se na kompletní příkaz uvedený níže:

> kubectl aplikovat -F ct.yaml

Po úspěšném provedení tohoto příkazu získáte následující výstup:

Krok č. 5: Správa CRD pomocí vlastního objektu

Vlastní objekty se používají ke správě CRD. Pojďme se tedy naučit, jak můžeme využít nedávno vytvořený vlastní objekt ke správě již vytvořeného CRD. Zde zkontrolujeme podrobnosti obsahující vlastní objekt pomocí příkazu „get“. Viz příkaz uvedený ve fragmentu kódu níže:

> kubectl získat crontab

Když provedete tento příkaz v terminálu minikube, vygeneruje se následující výstup:

Pokud chcete zkontrolovat nezpracovaná data obsažená v souboru YAML, můžete použít tento příkaz:

> kubectl získat ct - yaml

Tím se zobrazí nezpracovaná data v souboru YAML, jako je ukázka uvedená níže:

Takto můžeme vytvořit CRD a vlastní objekt pro správu a kontrolu vytvořeného CRD. Nyní, pokud chcete smazat vytvořené CRD, můžete postupovat podle níže uvedeného postupu.

Jak odstranit CRD vytvořené v Kubernetes?

Příkazy kubectl vám umožňují odstranit CRD v Kubernetes. Když se pokusíte odstranit CRD v Kubernetes, smažou se také vlastní prostředky s ním spojené. Kubectl poskytuje příkaz „delete“ k odstranění jakéhokoli prostředku. Níže uvedený příkaz se používá k odstranění CRD, které jsme vytvořili ve výše uvedených krocích:

> kubectl smazat -F red.yaml

Po úspěšném provedení tohoto příkazu získáte následující výsledek:

Nyní, když byly CRD a k němu přidružené uživatelské objekty odstraněny, obdržíte od serveru chybu, pokud se k němu pokusíte získat přístup. Podívejte se na níže uvedený příkaz, kde se snažíme získat přístup k RESTful API s jmenným prostorem:

> kubeclt získat crontabs

Protože byly „crontabs“ odstraněny, server u této akce zobrazí chybu. Viz výstup tohoto příkazu uvedený níže:

Závěr

Tento článek byl rychlým přehledem toho, jak vytvořit definici vlastního prostředku, jak vytvořit vlastní objekt pro ovládání CRD a jak odstranit CRD z Kubernetes. Pomocí vzorových příkladů jsme předvedli každý krok, abychom vám pomohli proces snadno a rychle pochopit.