Implementarea unei prime aplicații (fără stare)

Introducere în Kubernetes

Frank Heilmann

Platform Architect and Freelance Instructor

Mai mult despre „kubectl"

  • kubectl: comanda principală pentru interacțiunea cu obiectele Kubernetes
  • Obiectele sunt, de ex., pod, service etc.

$$

  • Tipare de utilizare frecvente:

    • kubectl create -f <Manifest.yml>: creează obiecte noi, -f pentru „filename"
    • kubectl apply -f <Manifest.yml>: creează obiecte noi și modifică starea obiectelor
    • kubectl get <object>: prezentare generală a obiectelor implementate în Kubernetes
    • kubectl describe <object>: informații detaliate despre un obiect

    $$

  • Ajutor detaliat disponibil prin opțiunea de linie de comandă --help

Introducere în Kubernetes

Mai mult despre manifeste

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
  • Rețineți: manifestele sunt declarative
  • De obicei în format YAML, dar și JSON
  • Două secțiuni importante:
    • metadata: informații esențiale despre obiect sau resursă
    • spec: definește specificațiile sau starea dorită a obiectului sau resursei
  • Secțiunile pot fi destul de adânci, în funcție de resursa implementată
Introducere în Kubernetes

Aplicații fără stare

  • Aplicații fără stare:

    • Concept general
    • Nu este specific Kubernetes
    • Nu salvează o stare internă sau contextul datelor procesate
  • La întrerupere, o nouă replică a aplicației fără stare este recreată și începe să funcționeze.

  • Exemple:
    • Frontend de baze de date care interoghează un backend
    • O aplicație de căutare care interoghează un index full-text
    • O aplicație de flux de date care convertește citiri de temperatură de la un senzor IoT din °F în °C
Introducere în Kubernetes

Deployment-uri Kubernetes

  • „Aplicațiile fără stare" corespund „Deployment-urilor Kubernetes"
  • Un manifest exemplu conține:
    • apiVersion și kind
    • metadata și spec
  • spec definește numărul de replicas, un selector și un template
  • Mai multe despre selector ulterior
  • template descrie detaliile pentru crearea podurilor în Deployment
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>
Introducere în Kubernetes

Implementarea într-un cluster Kubernetes

  • kubectl apply -f <manifest.yml> pentru crearea podurilor și aplicarea modificărilor.
  • Planul de control Kubernetes va programa implementarea pe noduri.
    • Apoi, se declanșează crearea podurilor pe noduri.
  • Podurile primesc un identificator unic, dar aleatoriu (imprevizibil); fiecare pod este „la fel de bun ca oricare altul"
Introducere în Kubernetes

Să exersăm!

Introducere în Kubernetes

Preparing Video For Download...