Životný cyklus

Úlohy súvisiace s nasadením a fungovaním:

  • Príprava nasadenia aplikácie, písanie konfiguračných skriptov.
  • Nasadenie aplikácie.
  • Zálohovanie.
  • Update aplikácie, zmena konfigurácie.

https://polarsquad.com/blog/kubernetes-second-day-operations

Nultý deň: (Zero day)

  • Návrh architektúry aplikácie, príprava komponentov a skriptov,

Deň jedna: (Day 1)

Inštalácia a konfigurácia aplikácie

Deň dva: (Day two)

Všetko ostatné - zálohovanie, škálovanie, update, konfigurácia.

Tvorba a distribúcia k8s aplikácií

Kompose

Prepíše Compose to Kubernetes

Yaml konfigurácia je zložitá.

Je možné znovupoužitie existujúcej konfigurácie.

Helm

  • Manažér balíčkov pre Kubernetes.
  • Umožňuje znovupoužitie existujúcej konfigurácie v inom prostredím.
  • Umožňuje ľahký update a životný cyklus konfigurácie aplikácie.

+-------+   +--------+
| Chart |   | Values |
+-------+   +--------+
    |        |
    v        v
  +----------+       +------------+
  | helm CLI | ----> | Deployment | -> K8s API
  +----------+       +------------+

Chart

  • Množina dopredu pripravených šablón YAML konfigurácií Kubernetes.
  • Množina konfiguračných premenných.
  • HELM zoberie YAML šablóny, aplikuje konfiguračné premenné a nasadí aplikáciu.

Repozitár Chartov

https://artifacthub.io/

Príklad:

Zero To Jupyterhub

apiVersion: v1
kind: Service
metadata:
  name: {{ include "jupyterhub.hub.fullname" . }}
  labels:
    {{- include "jupyterhub.labels" . | nindent 4 }}

Nevýhody HELM

  • Nevie vykonať "second day" operácie: zálohovanie, upgrade, škálovanie

Kubernetes Operator

  • Kontajner pre automatizáciu "first day" a "second day" operácií s určitou aplikáciou.
  • Definuje vlastný k8s typCustomResourceDefinition

Operátor vie:

  • nasadiť aplikáciu na požiadnaie
  • vykonať a obnoviť zálohu
  • vykonať upgrade a súvisiace kroky
  • zverejniť službu
  • upraviť konfiguráciu distribuovanej aplikácie

https://kubernetes.io/docs/concepts/extend-kubernetes/operator/

Ako vyzerá operátor?

  • Operátor sa vždy týka konkrétnej aplikácie, napr. postgresql
  • YAML konfigurácie pre nasadenie operátora.
  • 'CustoResource' , ktorý je konfigurovateľný.
  • Kontajner s kódom pre vlastný objekt.

Príklad

Minio operator

https://github.com/minio/operator

Repozitár pre Operátory

Vyhľadanie hotových deploymentov

https://operatorhub.io/

Ako nasadiť aplikáciu

  • kubectl
  • HELM
  • Operator
  • Všetko naraz. Pre Operator môže existovať Chart.
Reload?