Kubernetes

Kubernetes ReplicaSet bemutató

Kubernetes ReplicaSet bemutató
A Kubernetes-t gyakran tekintik egymással összefüggő fogalmaknak, mint például a csomópontok és csomagok, szolgáltatások, telepítések stb., Amelyeket gyakran nehéz kibogozni. Ebben a bejegyzésben bontsuk ki lassan egy kulcs absztrakciót, amely a ReplicaSet. Kezdjük egy kicsi létrehozásával .yaml fájl egy Kubernetes pod számára, amelyhez lenne címke, majd hozzon létre egy ReplicaSet készletet, amely biztosítja, hogy bizonyos számú azonos címkével rendelkező pod mindig futjon a fürtben . Ezt szándékolták a projekt szerzői, amikor Kubernetes-t terveztek. Kezdjük hát.

Előfeltételek

Az első dolog, amire szüksége lehet, egy Kubernetes-fürt elérése lesz. Létrehozhat egyet a Minikube használatával, vagy használhatja a Docker for Windows vagy a Docker for Mac alkalmazást, amelyekhez mostantól egyetlen csomópont Kubernetes disztribúció tartozik, amelyet a Docker beállításaiban engedélyezhet.

Szüksége van a priori ismeretekre a Kubernetesről is. Itt van egy nagyon jó kiindulópont.

Podok létrehozása

Általában podokat hozunk létre egy yaml fájl segítségével, amely meghatározza, hogy melyik tárolóképet használja, mely portokat tegye ki stb. Itt van egy egyszerű fájl egy nginx pod létrehozására.

apiVersion: v1
fajta: Pod
metaadatok:
név: nginx-1
címke:
alkalmazás: webszerver
specifikáció:
konténerek:
- név: nginx
kép: nginx: 1.7.9
portok:
- containerPort: 80

Mentse el név alatt nginx-pod.yaml könyvtárba, majd ugyanazon könyvtár belsejéből futtassa a parancsot:

$ kubectl create -f ./ nginx-pod.yaml
## Ellenőrizze, hogy a csomag létrejött-e a futtatással:
$ kubectl kap hüvelyeket

Észre fogja venni, hogy egyetlen hüvely nevű „Nginx-1” működik és működik. De nem méretezheted ezt az egyetlen hüvelyt. Futás kubectl létrehozni ismét hibát fog kapni, mivel a név nginx-1 nem lehet újra felhasználni.

A Kubernetes lehetőséget adott a hüvelyek létrehozására a magasabb absztrakciókhoz, mint például Telepítések és a ReplicaSets. Melyek hoznak létre podokat egy adott pod sablonból, meghatározva, hogy mely képeket használják, milyen portokat tegyenek közzé az egyes új podokban, stb., De semmi különös egyetlen podról. Ezután a ReplicaSet (és a Telepítések is) új hüvelyeket hoz létre, minden új hüvelynek egyedi nevet és nem egyedi címkét adva, amely segít a ReplicaSetnek nyomon követni az adott sablonból létrehozott hüvelyeket.

A ReplicaSet biztosítja, hogy egy adott pillanatban az adott címke bizonyos számú hüvelye mindig rendelkezésre álljon. Ha például egy csomópont lemegy, akkor a ReplicaSet feladata, hogy több csomópontot hozzon létre más csomópontokon a veszteség kompenzálásához. A repicaset yaml fájl megírásához a pod írásához hasonló mintát követnénk. Api verziója lesz (apps / v1), egy típust (ReplicaSet) és egy nevet a metaadatokban. Maga a replicaset is tartalmazhat címkéket, de egyelőre egyszerűvé tesszük a dolgokat, és csak egyedi nevet adunk neki my-replicaset.

Ezután át kell lépnünk metaadatok szakasz az anyag húsához spec. Itt adjuk meg a kívánt replikációk számát a szakasz alatt másolatok. Ezután megadjuk ezt a ReplicaSet a választó amellyel mondjuk egy címkét illesztenének, kb értékre mondjuk, web szerver, a jelenleg futó hüvelyek között. Ha kevesebb ilyen hüvely van, akkor az adott sablonnak megfelelően létrehoz egy hüvelyt, és ugyanazt a címkét adja hozzá ezekhez az új hüvelyekhez. Ha a szükségesnél több hüvely van, akkor néhányat töröl.

A leginkább érintett lépés egy olyan sablon megadása, amely alapul szolgálna új hüvelyek létrehozásához. Ennek a sablonnak nem lesz neve, mivel a replicaset minden új létrehozott pod számára új nevet hoz létre. Ennek azonban címkéi lesznek, és észreveheti, hogy ugyanaz a címke app = webszerver hogy a sablon van kiválasztva a választó paraméter a repicaset specifikációban.

apiVersion: apps / v1
fajta: ReplicaSet
metaadatok:
név: my-replicaset
 
specifikáció:
másolatok: 3
választó:
matchLabels:
alkalmazás: webszerver
sablon:
metaadatok:
címkék:
alkalmazás: webszerver
specifikáció:
konténerek:
- név: nginx
kép: nginx: 1.7.9
portok:
- containerPort: 80

Mentse ezt a fájlt nginx-replicaset néven.yaml, és a következő paranccsal hozza létre a repliket:

$ kubectl -f nginx-replicaset létrehozása.yaml

Mivel korábban létrehoztunk egy azonos címkével rendelkező hüvelyt app = webszerver, a replikáz még csak két hüvelyt hozna létre. Az összes hüvelyt felsorolhatja a következő paranccsal:

$ kubectl kap hüvelyeket
NÉV KÉSZ ÁLLAPOT ÚJRA KEZDIK
my-replicaset-nmvt9 1/1 0 9s futása
my-replicaset-xf9mx 1/1 0 9s futása
nginx-1 1/1 0 28s futása

Mindegyik hüvelyhez egyedi név társul. Mint a legelső hüvelynek, amelyet létrehoztunk, volt neve nginx-1. Megpróbálhatja ezt törölni a következő paranccsal:

$ kubectl törölje a pod nginx-1 fájlt
$ kubectl kap hüvelyeket
 
NÉV KÉSZ ÁLLAPOT ÚJRA KEZDIK
my-replicaset-nmvt9 1/1 Futás 0 1m
my-replicaset-pkn4q 1/1 0 22s futása
my-replicaset-xf9mx 1/1 Futás 0 1m

Észre fogja venni, hogy a ReplicaSet vezérlő szinte azonnal létrehozott egy új pod-ot az általunk törölt helyett. Így biztosítva, hogy a futó hüvelyek száma, címkével app = webszerver mindig 3, amint azt a fenti repicaset manifesztünk meghatározza.

A címkéknek és a szelektoroknak köszönhetően sok irányítást kap. A podokat tovább terjesztheti több csomópontra a nodeSelectors használatával, amelyek egy bizonyos csomóponton belül bizonyos számú podok kiosztására szolgálnak.

Amit a replikák nem engedélyeznek, azok a frissítések. Ha az alkalmazás újabb verziója, mondjuk, nginx: 1.8 jön, törölnie kell ezt a repliket, és újat kell létrehoznia azzal a képpel, amelyet a repicaset yaml-jegyzéke említ. Itt jön jól a telepítések koncepciója. Ez magában foglalja a másolatok ötletét, és kibővíti azáltal, hogy további támogatást nyújt az alkalmazások frissítéséhez. Most, hogy jól érzi magát a másolatokkal, érdemes lehet megvizsgálnia a Kubernetes-telepítéseket.

Hivatkozások

  1. Podok létrehozása
  2. ReplicaSets készítése
Az egér és az érintőpad beállításainak módosítása az Xinput használatával Linux alatt
A legtöbb Linux disztribúció alapértelmezés szerint „libinput” könyvtárral szállítja a rendszer bemeneti eseményeit. Feldolgozhatja a Wayland és az X ...
Az X-Mouse Button Control segítségével az egér gombjait másképp alakíthatja át a különböző szoftvereknél
Lehet, hogy szüksége van egy eszközre, amely megváltoztathatja az egér vezérlését minden használt alkalmazással. Ebben az esetben kipróbálhatja az úgy...
Microsoft Sculpt Touch vezeték nélküli egér áttekintés
Nemrég olvastam a Microsoft Sculpt Touch vezeték nélküli egér és úgy döntött, hogy megveszi. Egy ideig használat után úgy döntöttem, hogy megosztom ve...