Alkalmazások telepítése a Kubernetesben

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.

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:

  Hogyan lehet megtalálni valakinek az IP-címét az Instagramon

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ó.

  Hogyan kell játszani az Overwatch-ot Linuxon

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 MS Paint még nem halt Jöjjön az őszi Creators frissítés

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.