GNU/Linux >> Znalost Linux >  >> Linux

Jak vytvářet a spravovat Kubernetes Pody v Linuxu

V tomto tutoriálu se naučíme, jak vytvářet a spravovat Kubernetes Pods. Nejprve začneme tím, co je pod v Kubernetes a jak funguje pod. Dále se krátce podíváme na typy podů. A pak uvidíme, jak vytvořit nový Pod a jak zobrazit informace o Podu z příkazového řádku. Nakonec se naučíme, jak odstranit modul, když již není potřeba.

Co je pod v Kubernetes?

V Kubernetes , pody jsou nejmenší nasaditelné výpočetní jednotky, které můžete sestavit a ovládat. Pod je kolekce jednoho nebo více kontejnerů se sdíleným úložištěm a síťovými zdroji a také sadou pravidel pro to, jak by kontejnery měly být provozovány.

Obsah podu je vždy umístěn, společně naplánován a spuštěn ve stejném prostředí. Pod představuje aplikačně specifický "logický hostitel":obsahuje jeden nebo více těsně propojených aplikačních kontejnerů.

V perspektivě Dockeru je A Pod ekvivalentem sady kontejnerů Docker se společnými jmennými prostory a svazky souborového systému.

Typy Kubernetes Pods

V clusteru Kubernetes existují dva typy podů.

  • Pod s jedním kontejnerem: Nejčastějším případem použití Kubernetes je přístup „one-container-per-Pod“; v tomto scénáři považujte Pod za obal nad jedním kontejnerem; Kubernetes spravuje Pody spíše než přímo kontejnery.
  • Pod s více kontejnery: Pod může zapouzdřit aplikaci, která se skládá z mnoha těsně propojených kontejnerů, které potřebují sdílet zdroje. Tyto kontejnery jsou seskupeny do jedné servisní jednotky a tyto kontejnery spolu budou komunikovat.

Jak POD funguje?

Každý modul je navržen tak, aby spouštěl jednu instanci aplikace. Pokud potřebujete rozšířit aplikaci horizontálně, můžete použít několik podů, jeden pro každou instanci. To se běžně nazývá replikace v Kubernetes . Prostředek pracovní zátěže a jeho řadič normálně vytvářejí a spravují replikované moduly ve skupině.

Konečným cílem Kubernetes je nasazení aplikace ve formě kontejnerů v sadě strojů, která se nazývá pracovní uzel v Kubernetes Cluster.

Kubernetes nespouští kontejnery přímo v uzlu, ale kontejnery jsou zapouzdřeny jako Pod, což je jediná instance aplikace.

V clusteru Kubernetes se uzel skládá z podů a pod se skládá z kontejnerů. Například máte jednu instanci aplikace spuštěnou v jediném kontejneru zapouzdřeném pod.

Pokud se zvýší počet uživatelů, kteří přistupují k aplikaci, musíte aplikaci zvětšit. V takovém případě možná budete muset spustit další instance, abyste mohli sdílet zátěž.

Chcete-li aplikaci zvětšit, musíte roztočit další nový modul v uzlu se stejnou aplikací. Pokud se zatížení dále zvyšuje a aktuální uzel nemá žádnou kapacitu, musíte mít další uzel pro roztočení podů se stejným aplikačním kontejnerem.

Podobně pro zmenšení musíte odstranit existující pod.

Doufám, že máte základní představu o Kubernetes Pods. Podívejme se nyní, jak vytvořit a spravovat Pody v Kubernetes.

Než začnete, ujistěte se, že jste na svůj systém nainstalovali Kubernetes. Následující odkazy obsahují pokyny, jak nastavit nasazení jednoho uzlu a víceuzlového clusteru Kubernetes v Linuxu.

  • Jak nainstalovat Kubernetes pomocí Minikube v CentOS Linux
  • Instalace Kubernetes Cluster pomocí Kubeadm v RHEL, CentOS, AlmaLinux, Rocky Linux

Po instalaci Kubernetes můžete začít vytvářet Pody.

Obvykle nemusíte vytvářet moduly přímo, dokonce ani samostatné moduly. Místo toho je vytvořte pomocí zdrojů zátěže, jako je Deployment nebo Job . Deployment poskytuje deklarativní aktualizace pro moduly a sady replik.

Vytvořit rozmístění

Vytvořte ukázkové nasazení pomocí existujícího obrázku "echoserver" . Je to jednoduchý HTTP server a můžeme jej vystavit na portu 8080 pomocí --port možnost.

Obraz kontejneru je soubor, který zabalí program a všechny jeho softwarové závislosti do binárních dat. Obrazy kontejnerů jsou nezávislé spustitelné softwarové balíčky, které vytvářejí extrémně specifické předpoklady o jejich spouštěcím prostředí.

V tomto článku si projdeme všechny ukázky v shluku jednoho uzlu .

Podrobnosti o uzlu můžete zjistit spuštěním níže uvedeného příkazu jako root uživatel

# kubectl get nodes

Ukázkový výstup:

NÁZEV STAV ROLE VĚK VERZEostechnix Ready Master 25h v1.22.3

Nyní nasaďte ukázkovou aplikaci s názvem "hello-ostechnix" pomocí níže uvedeného příkazu. Můžete si jej pojmenovat podle svého.

# kubectl vytvořit nasazení hello-ostechnix --image=k8s.gcr.io/echoserver:1.10

Ukázkový výstup:

deployment.apps/hello-ostechnix vytvořeno[[email protected] ~]#

Rozmístění je vytvořeno, ověřte rozmístění pomocí níže uvedeného příkazu.

# kubectl získat nasazení

Ukázkový výstup:

JMÉNO PŘIPRAVENO AKTUÁLNÍ DOSTUPNÝ VĚKhello-ostechnix 1/1 1 1 85 s

Přístup k nasazení

Chcete-li k tomuto nasazení přistupovat jako ke službě, musíte jej vystavit jako službu. Pomocí níže uvedeného příkazu odhalte nasazení na portu 8080 .

# kubectl vystavit nasazení hello-ostechnix --type=NodePort --port=8080

Ukázkový výstup:

service/hello-ostechnix vystaven

Pomocí níže uvedeného příkazu získáte adresu URL vystavené služby.

# službu minikube hello-ostechnix --url

Ukázkový výstup:

http://192.168.181.131:30525

Zkopírujte adresu URL a vložte ji do prohlížeče, zobrazí se v ní podrobnosti o nasazené aplikaci.

Ujistěte se, že port 30525 je povoleno ve vašem routeru nebo firewallu. Pokud je tento port zablokován, nemusíte v prohlížeči zobrazit informace o modulu.

Odstranit implementaci

Nejprve smažte službu "hello-ostechnix" pomocí příkazu:

# kubectl smazat služby hello-ostechnix

Ukázkový výstup:

služba "hello-ostechnix" smazána

Dále odstraňte nasazení „hello-ostechnix“:

# kubectl smazat nasazení hello-ostechnix

Ukázkový výstup:

deployment.apps "hello-ostechnix" smazáno

Jakmile odstraníte nasazení, modul přidružený k aplikaci bude ukončen. Ukončení bude trvat několik sekund.

# kubectl get pods

Ukázkový výstup:

JMÉNO PŘIPRAVENO STAV RESTARTUJE AGEhello-ostechnix-5d4cf4df75-jlwff 1/1 Ukončování  0 57 m

Po ukončení nasazení již aplikace nebude přístupná.

# kubectl get pods

Ukázkový výstup:

Ve výchozím jmenném prostoru nebyly nalezeny žádné zdroje.

Spustit moduly s obrázky

Můžeme použít 'kubectl run ' k vytvoření a spuštění aplikace v podu.

$ kubectl spustit  --image=

Zde může být název podu jakýkoli a název obrázku musí být konkrétní, který by byl k dispozici v Docker Hub nebo v jakémkoli místním úložišti.

Pojďme vytvořit pod s obrázkem Nginx.

# kubectl spustit ostechnix-nginx --image=nginx

Ukázkový výstup:

vytvořen pod/ostechnix-nginx

Byl vytvořen modul s názvem 'ostechnix-nginx'. Stav modulu můžete ověřit pomocí příkazu níže.

# kubectl get pods

Ukázkový výstup:

JMÉNO PŘIPRAVENO STAV RESTARTUJE VĚKostechnix-nginx 1/1 Běh 0 4m20s

Další informace, jako například kde je modul spuštěn a IP adresu modulu, můžete získat pomocí 'wide ' možnost.

# kubectl get pods -o wide

Ukázkový výstup:

JMÉNO PŘIPRAVENO STAV RESTARTUJE VĚK IP UZEL NOMINOVANÝ UZL PŘIPRAVENOST BRÁNYSostechnix-nginx 1/1 Běh 0 38m 172.17.0.6 ostechnix <žádný> <žádný> 

Kompletní informace o POD můžete získat pomocí 'kubectl describe příkaz '.

# kubectl popsat pod ostechnix-nginx

Tento příkaz vám poskytne úplné podrobnosti o POD, jako jsou podrobnosti o kontejneru a jeho stavech, podrobnosti o událostech, ke kterým došlo od vytvoření podu.

Jméno:ostechnix-nginxNamespace:defaultPriority:0Uzel:ostechnix/192.168.181.131Čas zahájení:Čt, 03. února 2022 01:40:48 -0800Štítky:run=ostechnix-nginnexStanning1IP:16.7 IP adresy:IP:172.17.0.6Kontejnery: ostechnix-Nginx:Container ID:docker:// 29eeb0392247aef193d6dff0138f8ef132dfb6359d8e67c3a5e4a21d7e259989 obrázku:Nginx Image ID:docker-pullable:// [email protected]:2834dc507516af02784808c5f48b7cbe38b8ed5d0f4837f16e78d00deb7e7767 Port: Hostitel Port: Státní:Běh Začátek:Čt, 3.února 2022 01:40:54 -0800 Připraveno:Skutečný počet restartů:0 Prostředí: Montáž: /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-ggvk6 (ro)Podmínky: Typ Stav Inicializováno Pravda Připraveno Pravda KontejneryPřipraveno Pravda PodScheduled TrueObjemy: kube-api-access-ggvk6:Typ:Projected (svazek, který obsahuje vložená data z více zdrojů) TokenExpirationSeconds:3607 ConfigMapName:kube-root-ca.crt ConfigMapVolitelné: DownwardAPI:trueQoS Třída:BestEffort Tolerance:node.kubernetes.io/not-ready:NoExecute op=Existuje 300 s node.kubernetes.io/unreachable:NoExecute op=Existuje 300sUdálosti: Typ Důvod Stáří od zprávy ---- ------ ---- ---- ------- Normální Naplánováno 7m26s výchozí plánovač Úspěšně přiřazen výchozí/ostechnix-nginx k ostechnix Normální Vytažení 7m24s kubelet Vytažení image "nginx" Normální Vytaženo 7m20s kubelet Úspěšně vytaženo Obrázek "nginx" za 4,114836826s Normální Vytvořeno 7m20s kubelet Vytvořený kontejner ostechnix-nginx Normální Spuštěno 7m20s kubelet Spuštěný kontejner ostechnix-nginx]> ~[email protected]> #[email protected  

Jakmile to uděláte, můžete modul smazat pomocí 'kubectl delete ' příkaz.

# kubectl smazat pod ostechnix-nginx

Ukázkový výstup:

Pod "ostechnix-nginx" smazán

Ověřte, zda je modul smazán, uvedením dostupných modulů:

# kubectl get podsVe výchozím jmenném prostoru nebyly nalezeny žádné zdroje.

Závěr

V tomto tutoriálu jsme prošli konceptem Pod v Kubernetes, jednoduchým nasazením aplikace a tím, jak spustit Pod. Budeme mít další podrobnosti o vytváření podu pomocí YAML definiční soubor v našich připravovaných podrobnostech.


Linux
  1. Jak nasadit svůj první modul na clusteru Kubernetes

  2. Jak vytvořit alias a používat příkaz Alias ​​v Linuxu

  3. Jak nastavit/vytvořit proměnné prostředí a prostředí v Linuxu

  1. Jak vytvořit pevné a symbolické odkazy v Linuxu

  2. Jak spravovat vypršení platnosti uživatelského hesla a stárnutí v Linuxu

  3. Jak spravovat a vypisovat služby v Linuxu

  1. Jak restartovat Kubernetes Pods

  2. Jak vytvořit a odstranit uživatelskou skupinu v Linuxu

  3. Jak odstranit moduly v Kubernetes [Rychlé tipy K8s]