Nasazení první (bezstavové) aplikace

Úvod do Kubernetes

Frank Heilmann

Platform Architect and Freelance Instructor

Více o příkazu „kubectl"

  • kubectl: hlavní příkaz pro práci s objekty Kubernetes
  • Objekty jsou např. pod, service atd.

$$

  • Typické způsoby použití:

    • kubectl create -f <Manifest.yml>: vytvoření nových objektů, -f označuje „filename"
    • kubectl apply -f <Manifest.yml>: vytvoření nových objektů a změna stavu objektů
    • kubectl get <object>: přehled objektů nasazených v Kubernetes
    • kubectl describe <object>: podrobné informace o objektu

    $$

  • Podrobná nápověda dostupná přes volbu --help

Úvod do Kubernetes

Více o manifestech

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 5
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.25.4
        ports:
        - containerPort: 80
  • Manifesty jsou deklarativní
  • Typicky ve formátu YAML, ale také JSON
  • Dvě důležité sekce:
    • metadata: základní informace o objektu nebo zdroji
    • spec: definuje specifikace neboli požadovaný stav objektu nebo zdroje
  • Sekce mohou být poměrně hluboké v závislosti na nasazovaném zdroji
Úvod do Kubernetes

Bezstavové aplikace

  • Bezstavové aplikace:

    • Obecný koncept
    • Není specifický pro Kubernetes
    • Neukládají vnitřní stav ani kontext zpracovaných dat
  • Po přerušení je vytvořena nová replika bezstavové aplikace, která začne fungovat.

  • Příklady:
    • Frontend databáze dotazující se na backendovou databázi
    • Vyhledávací aplikace dotazující se na fulltextový index
    • Aplikace pro datový proud převádějící údaje o teplotě ze senzoru IoT z °F na °C
Úvod do Kubernetes

Nasazení v Kubernetes

  • „Bezstavové aplikace" odpovídají „Kubernetes Deployments"
  • Ukázkový manifest se skládá z:
    • apiVersion a kind
    • metadata a spec
  • spec definuje počet replicas, selector a template
  • Více o selector později
  • template popisuje podrobnosti pro vytváření podů v nasazení
apiVersion: apps/v1
kind: Deployment
metadata:
  name: <deployment name>
  labels:
    app: <a label for the application>
spec:
  replicas: <number of initial replicas>
  selector:
    matchLabels:
      app: <matches the label above>
  template:
    metadata:
      labels:
        app: <label to be given to each pod>
    spec:
      containers:
      - name: <container name>
        image: <the image to be used>
        ports:
        - containerPort: <ports for networking>
Úvod do Kubernetes

Nasazení do clusteru Kubernetes

  • kubectl apply -f <manifest.yml> pro vytváření podů a aplikování změn.
  • Řídicí rovina Kubernetes naplánuje nasazení na uzlech.
    • Poté dojde ke spuštění podů na uzlech.
  • Pody získají jedinečný, ale náhodný (nepředvídatelný) identifikátor – každý pod je „stejně dobrý jako kterýkoli jiný"
Úvod do Kubernetes

Pojďme si to procvičit!

Úvod do Kubernetes

Preparing Video For Download...