Kubernetes

Výukový program Kubernetes ReplicaSet

Výukový program Kubernetes ReplicaSet
Kubernetes je často považován za toto obrovské množství vzájemně propojených konceptů, jako jsou uzly a lusky, služby, nasazení atd., Které je často obtížné rozmotat. V tomto příspěvku pojďme pomalu rozluštit klíčovou abstrakci, kterou je ReplicaSet. Začneme vytvořením malého .soubor yaml pro pod Kubernetes, který by měl k němu štítek, a pak vytvořil ReplicaSet, který by zajistil, že v clusteru vždy běží určitý počet lusků se stejným štítkem . To je to, co autoři projektu skutečně zamýšleli, když navrhovali Kubernetes. Tak pojďme začít.

Předpoklady

První věc, kterou byste potřebovali, bude přístup ke clusteru Kubernetes. Můžete si vytvořit jeden pomocí Minikube nebo použít Docker pro Windows nebo Docker pro Mac, oba nyní přicházejí s distribucí jednoho uzlu Kubernetes, kterou můžete povolit v nastavení Dockeru.

Také byste potřebovali apriorní znalosti o Kubernetes. Zde je opravdu dobrý výchozí bod.

Vytváření podů

Typicky vytváříme lusky pomocí souboru yaml, který určuje, jaký obrázek kontejneru se má použít, které porty vystavit atd. Tady je jednoduchý soubor pro vytvoření nginx pod.

apiVersion: v1
druh: Pod
metadata:
název: nginx-1
označení:
aplikace: webový server
spec:
kontejnery:
- název: nginx
obrázek: nginx: 1.7.9
porty:
- containerPort: 80

Uložte jej pod jménem nginx-pod.yaml v adresáři a poté ze stejného adresáře spusťte příkaz:

$ kubectl create -f ./ nginx-pod.yaml
## Ověřte, že je pod vytvořen spuštěním:
$ kubectl získat lusky

Všimnete si, že byl pojmenován jeden pod „Nginx-1“ je v provozu. Ale nemůžete škálovat tento jediný pod. Běh kubectl vytvořit znovu vám dá chybu od jména nginx-1 nelze znovu použít.

Kubernetes dal schopnost vytvářet lusky s vyššími abstrakcemi, jako je Nasazení a sady replik. Které vytvářejí lusky z dané šablony lusku a určují, jaké obrázky se mají použít, jaké porty vystavit v každém z nových lusků atd., Ale nic konkrétního o jediném lusku. ReplicaSet (a také Deployments) pak pokračují ve vytváření nových podů, přičemž každému novému podu dávají jedinečný název a také nejedinečný štítek, který pomáhá ReplicaSet sledovat pody, které byly vytvořeny z dané šablony.

ReplicaSet zajišťuje, že v daném okamžiku bude vždy funkční určitý počet lusků daného štítku. Pokud například uzel spadne, je úkolem ReplicaSet vytvořit více lusků napříč jinými uzly, aby se kompenzovala ztráta. Při psaní souboru repliksetu yaml bychom postupovali podobně jako při psaní podu. Bude mít verzi api (aplikace / v1), typ (ReplicaSet) a název v metadatech. Samotná replika může mít na sobě štítky, ale zatím to zjednodušíme a dáme jí jedinečný název moje-replicaset.

Pak se musíme přestěhovat metadata část masa hmoty spec. Zde poskytujeme počet replikací, které chceme v této sekci repliky. Pak dáme tuto sadu replik a volič který by byl použit k označení štítku, řekněme, aplikace na hodnotu, řekněme, webový server, mezi aktuálně běžícími lusky. Pokud existuje méně těchto lusků, vytvoří se lusky podle dané šablony a přidá stejný štítek k těmto novým luskům. Pokud existuje více podů, než je požadováno, odstraní se několik.

Zadání šablony, která by fungovala jako základ pro vytváření nových podů, je nejvíce zapojeným krokem. Tato šablona nebude mít název, protože replicaset vytvoří nový název pro každý nový vytvořený pod. Bude mít štítky, ale můžete si všimnout, že stejný štítek aplikace = webový server , kterou šablona má, je vybrána pomocí volič parametr ve specifikaci repliky.

apiVersion: apps / v1
druh: ReplicaSet
metadata:
jméno: moje-replicaset
 
spec:
repliky: 3
volič:
matchLabels:
aplikace: webový server
šablona:
metadata:
štítky:
aplikace: webový server
spec:
kontejnery:
- název: nginx
obrázek: nginx: 1.7.9
porty:
- containerPort: 80

Uložte tento soubor jako nginx-replicaset.yaml a vytvořte repliku pomocí příkazu:

$ kubectl create -f nginx-replicaset.yaml

Protože jsme dříve vytvořili pod se stejným štítkem aplikace = webový server, sada replik by vytvořila jen další dva lusky. Všechny pody můžete vypsat pomocí příkazu:

$ kubectl získat lusky
STAV JMÉNA PŘIPRAVENO VĚC RESTARTUJE
my-replicaset-nmvt9 1/1 Běh 0 9s
my-replicaset-xf9mx 1/1 Běh 0 9s
nginx-1 1/1 Běh 0 28s

Ke každému z podů bude přidružen jedinečný název. Jako úplně první pod, který jsme vytvořili, měl název nginx-1. Můžete to zkusit odstranit pomocí příkazu:

$ kubectl smazat pod nginx-1
$ kubectl získat lusky
 
STAV JMÉNA PŘIPRAVENO VĚC RESTARTUJE
my-replicaset-nmvt9 1/1 Běh 0 1 m
my-replicaset-pkn4q 1/1 Běh 0 22 s
my-replicaset-xf9mx 1/1 Běh 0 1 m

Všimnete si, že řadič ReplicaSet téměř okamžitě vytvořil nový pod, který nahradil ten, který jsme odstranili. Tím je zajištěno, že počet běžících lusků, se štítkem aplikace = webový server je vždy 3, jak je uvedeno v našem manifestu repliky výše.

Díky štítkům a selektorům získáte velkou kontrolu. Lusky můžete dále rozložit na více uzlů pomocí nodeSelectors, které se používají k přidělení určitého počtu lusků na určitých uzlech.

Co nepovolují repliky, jsou aktualizace. Pokud je novější verze vaší aplikace, řekněme nginx: 1.8 přijde, budete muset odstranit tuto repliku a vytvořit novou s tímto obrázkem uvedeným v manifestu yaml repliky. Zde se hodí koncept nasazení. Zahrnuje myšlenku replik a rozšiřuje se tím, že poskytuje další podporu pro aktualizaci vašich aplikací. Teď, když vám vyhovují sady replik, může být dobrý nápad podívat se do nasazení Kubernetes.

Reference

  1. Vytváření podů
  2. Vytváření replik
Hry Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Emulátor Dolphin vám umožní hrát vybrané hry Gamecube a Wii na osobních počítačích se systémem Linux (PC). Jako volně dostupný herní emulátor s otevř...
Hry Jak používat GameConqueror Cheat Engine v Linuxu
Jak používat GameConqueror Cheat Engine v Linuxu
Tento článek popisuje průvodce používáním cheatovacího modulu GameConqueror v systému Linux. Mnoho uživatelů, kteří hrají hry v systému Windows, často...
Hry Nejlepší emulátory herních konzolí pro Linux
Nejlepší emulátory herních konzolí pro Linux
Tento článek uvádí seznam populárního softwaru pro emulaci herních konzolí, který je k dispozici pro Linux. Emulace je vrstva softwarové kompatibility...