GNU/Linux >> Znalost Linux >  >> Linux

Jak vytvořit StatefulSet v Kubernetes

StatefulSets obsahují sadu modulů s jedinečnými, trvalými identitami a stabilními názvy hostitelů. Šablona pod se používá ve Statefulsetu, který obsahuje specifikaci svých podů, pody se vytvářejí pomocí této specifikace. Můžeme nasadit stavové aplikace a klastrované aplikace pomocí Statefulsets v Kubernetes. StatefulSet lze aktualizovat provedením změn ve specifikaci podu, která zahrnuje obrazy kontejnerů a svazky.

StatefulSets lze použít, když aplikace vyžadují některou z následujících vlastností.

  • Stabilní, jedinečné síťové identifikátory.
  • Stabilní, trvalé úložiště.
  • Spořádané, elegantní nasazení a škálování.
  • Objednané, automatické průběžné aktualizace.

V případě StatefulSet s N replikami se moduly při nasazování modulů vytvářejí postupně v pořadí od {0..N-1}. Když jsou moduly mazány, jsou ukončeny v opačném pořadí, od {N-1..0}.

Chcete-li se o Statefulset dozvědět více, klikněte sem.

V tomto článku vytvoříme Statefulset s replikami modulů Nginx. Provedeme operace s moduly, abychom viděli, jak jsou odstraněny a vytvořeny.

Předpoklady

  1. Cluster Kubernetes s alespoň 1 pracovním uzlem.
    Pokud se chcete naučit vytvářet cluster Kubernetes, klikněte sem. Tato příručka vám pomůže vytvořit cluster Kubernetes s 1 hlavním a 2 uzly na instancích AWS Ubuntu 18l04 EC2.

Co uděláme

  1. Vytvořte Statefulset

Vytvořit Statefulset

Vytvořte soubor a přidejte do něj následující definici Statefulset.

vim statefulset.yml

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: nginx
  serviceName: "nginx"
  replicas: 3
  template:
    metadata:
      labels:
        app: nginx
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - name: nginx
        image: k8s.gcr.io/nginx-slim:0.8
        ports:
        - containerPort: 80
          name: web

V tomto příkladu 

  • Služba Headless s názvem nginx , se používá k ovládání sítě.
  • StatefulSet, pojmenovaný web, má 3 repliky kontejneru nginx, které budou spuštěny v jedinečných podech.
  • K nasazení Nginx se používá obrázek nginx s verzí slim:0.8.

Chcete-li vytvořit Statefulset, proveďte následující příkazy.

kubectl získat stavovou sadu

kubectl create -f statefulset.yml

Provedením následujících 2 příkazů vypíšete Statefulset a službu vytvořenou ve výše uvedeném kroku.

kubectl získat stavovou sadu

kubectl získat službu

Získejte moduly pomocí následujícího příkazu a uvidíte, že moduly mají v názvu modulu čísla jako příponu.

kubectl získat pods

Chcete-li získat úplné podrobnosti o Statefulsetu, spusťte následující příkazy.

kubectl získat stavovou sadu

kubectl popisují stavový web

Nyní vymažeme pody a podíváme se, jak jsou názvy zachovány i po vytvoření nových podů.

Odstraňujeme 2 pody, abychom viděli, jaká jména budou přiřazena novým podům po vytvoření.

kubectl získat pods

kubectl delete pods web-0 web-2

kubectl získat pods

Na výše uvedeném snímku obrazovky můžete vidět, že i po smazání podů získají nově vytvořené pody stejný název.

Závěr

V tomto článku jsme vytvořili Statefulset a provedli jsme na něm operace, abychom zkontrolovali jeho podrobnosti. Smazali jsme také pody, abychom viděli, jak je název podu zachován a stejný je přiřazen nově vytvořeným podům po jeho smazání.


Linux
  1. Jak vytvořit Git Tagy

  2. Jak vytvořit subdoménu

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

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

  2. Jak vytvořit subdoménu

  3. Jak restartovat moduly v Kubernetes [Rychlý tip K8s]

  1. Jak odstranit službu v Kubernetes

  2. Jak vytvořit odkaz na adresář

  3. Jak spustit historii Pods na Kubernetes Node?