A Kubernetes az egyik legnépszerűbb automatizálási platform az alkalmazástárolók telepítéséhez, méretezéséhez és üzemeltetéséhez gazdagépek vagy csomópontok fürtjein.
Ez a cikk a Kubernetes egyik központi objektumát tárgyalja: a telepítést. A cél az, hogy megértsük a viselkedését, és hogyan lehet létrehozni, frissíteni és törölni.
Tartalomjegyzék
Mi az a telepítés?
A telepítés a Pod-ok indításához használt objektumok egyike. A Kubernetes bevált gyakorlatai ösztönzik a telepítések használatát az állapot nélküli alkalmazásokhoz. Üzembe helyezés nélkül manuálisan kellene több Pod-ot létrehoznia, frissítenie és törölnie, ami sok Pod esetében fárasztó és kivitelezhetetlen lenne.
A központi telepítés egyetlen objektumot deklarál a YAML-ben, amely nemcsak létrehozza a podokat, hanem biztosítja azok naprakészségét és működését is. Könnyedén automatikusan méretezheti alkalmazásait a Kubernetes rendszerbe történő telepítésével. Így a központi telepítés az alkalmazások Pod-ban lévő verzióinak méretezésére, üzembe helyezésére és visszaállítására szolgál.
A központi telepítés azt is megmondja a Kubernetesnek, hogy hány Pod-példányt szeretnénk futtatni, a többiről pedig a Kubernetes gondoskodik. A kapcsolódó vezérlő a telepítés létrehozásakor létrehoz egy ReplicaSet-et a konfigurációból. A ReplicaSethez társított vezérlő egy sor Pod-ot hoz létre a ReplicaSet konfigurációból.
A ReplicaSet közvetlen létrehozása helyett a telepítés használatának előnyei a következők:
- Az objektum historizálása: az objektum minden módosítása (az „alkalmaz” vagy „szerkesztés”) biztonsági másolatot készít az előző verzióról.
- Közzététel és visszaállítás kezelése: Az előző ponthoz kapcsolódóan visszaléphet egy konfigurációra.
Telepítés létrehozása
Két módszert használhatunk a Kubernetes-telepítés létrehozására:
Imperatív módszer
A Kubernetes API-k közvetlenebb és kötelező megközelítést tesznek lehetővé konfigurációs fájlok vagy YAML-formátumú jegyzékek szükségessége nélkül. Ebben a megközelítésben mindössze annyit kell tennünk, hogy elmondjuk, mit akarunk, és a Kubernetes felelősséget vállal annak meghatározásáért, hogy mit kell tenni a várt eredmény elérése érdekében.
A kötelező módszer használatához egyszerűen használja az alábbi parancsot:
kubectl create deployment nginx-deployment --image nginx --port=80
Deklaratív módszer
Ebben a módszerben mindent deklarálnia kell, és amikor ezt a kódot használja, a Kubernetes csak beolvassa a definícióit, és pontosan úgy hozza létre, ahogyan bemutatja vagy deklarálta.
A deklaratív telepítés használatához YAML-fájlt kell létrehoznia.
YAML fájl a telepítéshez new_deployment.yaml néven:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: #Specifies the number of Pod Copies replicas: 3 #Selects the Pod to be managed by the deployment selector: #Matches the defined labels matchLabels: deploy: example template: metadata: #Specifies the labels on the Pod. labels: deploy: example spec: containers: - name: nginx image: nginx:1.20.2
Ebben a YAML-fájlban a Kubernetes API verziójának, a létrehozandó objektum típusának és a telepítés nevének meghatározása után megjelenik a specifikáció szakasz. Ebben a szakaszban először meg kell határoznia a replikakulcsot, amely azt jelzi, hogy a központi telepítésnek hány Pod-példányt kell aktívnak tartania.
Használjon kiválasztó címkét a telepítésben lévő Pod-ok azonosításához. Ehhez használhatja az üzembe helyezési címkét, amely azt jelzi, hogy az ezeknek a címkéknek megfelelő összes sorba rendezés a telepítés során csoportosítva van.
Ezt követően megvan a sablonobjektum, ahol a telepítési specifikáción belül van egy Pod-modell. Amikor a központi telepítés létrehozza a podokat, akkor ezzel a sablonnal hozza létre azokat. A normál pod specifikációja a sablonkulcs alatt található.
Ezzel az üzembe helyezéssel a címkékkel ellátott Nginx-képek telepítésre kerülnek a Pod-okon. Sőt, ezen a ponton is óvatosnak kell lenni, mivel a Pod a Kubernetes méretezhetőségi egysége, ezért át kell gondolnia, hogy milyen mintát szeretne használni, ha több tárolót helyez el ugyanabba a Podba.
Ezután alkalmazza a new_deployment.yaml Yaml fájlt, és használja a következő parancsot:
kubectl apply -f new_deployment.yaml
Néhány másodperc múlva a következő módon kaphatja meg a telepítési állapotot:
kubectl get all
Telepítés lekérése és frissítése
Ne feledje, hogy megvannak a Pod-ok, a telepítés és a replikakészlet is. Tehát a központi telepítés mindig létrehoz és kezel egy replikát. Most a következő paranccsal leírhatja a telepítést:
kubectl describe deployment nginx-deployment
Most megvan a telepítés teljes leírása. Kiemeli a pod-ok létrehozására/újraépítésére használt stratégiát, amikor a frissítés RollingUpdate-ként lett meghatározva.
A RollingUpdate stratégia lehetővé teszi az alkalmazás egyik verziójának szabályos áttelepítését egy újabb verzióra. Ez a Kubernetesben használt alapértelmezett stratégia.
Ezen kívül a következő stratégiáink vannak:
- Újrakészítés: Leállítja a jelenleg futó Pod-példányokat, és „újrateremti” őket az új verzióval;
- Kék/zöld: Ez a stratégia két különálló, de azonos környezetet hoz létre. A kék környezetben az alkalmazás úgy fut, ahogy van, míg a zöld környezetben az alkalmazás úgy fut, ahogyan a jövőben fog futni;
- Canary: Olyan üzembe helyezési stratégia, amelyben a felhasználók egy része részt vesz egy alkalmazás vagy szolgáltatás fokozatos kiadásában.
Ha a „gördülő frissítést” választja, konfigurálhatja annak viselkedését a kívánt replikák számával kapcsolatban.
- A maxSurge lehetővé teszi, hogy jelezze (százalékban vagy abszolút értékben), hogy a jelenleg konfigurált replikák számán felül hány Pod-ot tud létrehozni.
- A maxUnavailable lehetővé teszi, hogy jelezze (százalékban vagy abszolút értékben), hogy hány Pod lehet „nem elérhető” a frissítés során, a konfigurált replikák számától függően.
Az alkalmazástól és az automatikus skálázótól függően ezek a konfigurációk lehetővé teszik a QoS biztosítását vagy a telepítések felgyorsítását.
Ezután 10-re kell méreteznie a Podokat, és módosítania kell az Nginx képcímkét a legújabbra.
kubectl scale deployment nginx-deployment --replicas=10
Ne feledje, hogy jelenleg 5 konténer készül, és a 10 Pod-ból 5 áll rendelkezésre.
Néhány másodperc múlva használja a következő parancsot:
kubectl get all
Itt láthatja, hogy az összes pod létrehozása megtörtént, és a tárolók futnak.
A telepítés törlése
A Kubernetes-telepítés törléséhez a következő parancsokat használhatja:
kubectl delete deploy nginx-deployment kubectl delete deploy new_deployment.yaml
Helm: Egyszerűsítse a telepítéseket
Ha olyan összetett alkalmazást szeretne telepíteni, amely több tíz vagy akár több száz Kubernetes erőforrást használ, a kubectl eszköz alkalmatlanná válik, ezért fejlesztették ki a Helm eszközt. A Helm a Kubernetes csomagkezelője, amely a kubectl-re épül, és leegyszerűsíti az alkalmazások telepítését.
A Helm szókincsben egy alkalmazást kiadásnak neveznek. Egy diagramhoz van társítva, azaz YAML formátumú konfigurációs fájlok gyűjteményéhez, amely a Kubernetes erőforrásokat leíró globális változókat és sablonokat tartalmazza.
Következtetés
A telepítés alapvető Kubernetes-objektum. Mivel egy nagy hatalom nagy felelősséggel jár, óvatosnak kell lennie a konfigurálás során, különben váratlan viselkedést kockáztat. A központi telepítési konfigurációkkal való továbblépéshez tekintse meg a Kubernetes dokumentációját.
Felfedezheti a legjobb Kubernetes oktatóanyagokat is, hogy a semmiből tanulhasson, és szakértővé válhasson.