00: Kubernetes — przegląd

Kubernetes — przegląd

Zanim zaczniesz ćwiczenia, poznaj ogólny obraz: po co jest Kubernetes, z jakich elementów się składa i jak te elementy współpracują.

Kubernetes Przegląd — Overview

Po co Kubernetes?

Po co Kubernetes?

Wyobraź sobie port kontenerowy. Masz setki kontenerów (aplikacji), które trzeba:

  • Rozmieścić na odpowiednich statkach (serwerach)
  • Pilnować — jeśli kontener spadnie, ktoś musi go podnieść
  • Skalować — w sezonie potrzebujesz więcej kontenerów
  • Aktualizować — wymiana towaru bez zamykania portu

Problem: “Mam aplikację w kontenerze Docker. Jak ją uruchomić na wielu maszynach, skalować, aktualizować bez przestoju i automatycznie naprawiać awarie?”

Odpowiedź: Kubernetes (K8s) — orkiestrator kontenerów, który automatyzuje deploy, skalowanie i self-healing.

Architektura klastra

Architektura klastra K8s

Klaster Kubernetes składa się z dwóch warstw:

graph TB
    subgraph CP["Control Plane (mózg klastra)"]
        API["API Server<br/>Brama wejściowa — każde polecenie przechodzi przez API"]
        ETCD["etcd<br/>Baza danych — przechowuje cały stan klastra"]
        SCHED["Scheduler<br/>Planista — decyduje na którym Node uruchomić Pod"]
        CM["Controller Manager<br/>Nadzorca — pilnuje że stan rzeczywisty = stan pożądany"]
    end

    subgraph W1["Worker Node 1"]
        KL1["kubelet<br/>Agent na Node — uruchamia i monitoruje Pody"]
        KP1["kube-proxy<br/>Sieć — routing ruchu do Podów"]
        CR1["Container Runtime<br/>Silnik kontenerów (containerd)"]
        P1["Pod A"]
        P2["Pod B"]
    end

    subgraph W2["Worker Node 2"]
        KL2["kubelet"]
        KP2["kube-proxy"]
        CR2["Container Runtime"]
        P3["Pod C"]
        P4["Pod D"]
    end

    API <-->|"watch/sync"| ETCD
    API --> SCHED
    API --> CM
    API <-->|"polecenia"| KL1
    API <-->|"polecenia"| KL2
    KL1 --> CR1
    CR1 --> P1
    CR1 --> P2
    KL2 --> CR2
    CR2 --> P3
    CR2 --> P4

Komponenty Control Plane

Komponent Rola
API Server Jedyny punkt wejścia — kubectl, UI i inne komponenty komunikują się przez API
etcd Rozproszona baza klucz-wartość przechowująca cały stan klastra
Scheduler Wybiera Node dla nowo utworzonych Podów na podstawie zasobów i ograniczeń
Controller Manager Uruchamia kontrolery pilnujące, że stan klastra odpowiada deklaracji (np. “chcę 3 repliki”)

Komponenty Worker Node

Komponent Rola
kubelet Agent na każdym Node — odbiera polecenia z API Server i zarządza Podami
kube-proxy Zarządza regułami sieciowymi — zapewnia, że ruch trafia do właściwych Podów
Container Runtime Silnik uruchamiający kontenery (np. containerd)

kubectl i kubeconfig

kubectl i kubeconfig

kubectl — narzędzie do zarządzania klastrem

kubectl to CLI (Command Line Interface) do komunikacji z klastrem Kubernetes. Każde polecenie kubectl trafia do API Servera, który je przetwarza i wykonuje.

graph LR
    YOU["Ty<br/>(terminal)"]
    KC["kubectl"]
    API["API Server<br/>(Control Plane)"]

    YOU -->|"kubectl get pods"| KC
    KC -->|"HTTPS"| API
    API -->|"odpowiedź"| KC

    style YOU fill:#e3f2fd
    style KC fill:#fff3e0
    style API fill:#e8f5e9

kubeconfig — plik konfiguracyjny

Skąd kubectl wie, z którym klastrem się połączyć? Z pliku kubeconfig (~/.kube/config). Zawiera on:

Element Co przechowuje
cluster Adres API Servera i certyfikat CA klastra
user Dane uwierzytelniające (token, certyfikat klienta)
context Połączenie cluster + user + domyślny namespace
# Uproszczony przykład ~/.kube/config
apiVersion: v1
kind: Config
clusters:
- cluster:
    server: https://k8s-training-xyz.hcp.swedencentral.azmk8s.io:443
    certificate-authority-data: LS0tLS1C...   # certyfikat CA
  name: k8s-training
users:
- name: k8s-training-admin
  user:
    token: eyJhbGci...                        # token uwierzytelniający
contexts:
- context:
    cluster: k8s-training
    user: k8s-training-admin
  name: k8s-training
current-context: k8s-training

Ważne: Plik kubeconfig zawiera dane uwierzytelniające — traktuj go jak hasło. Nie udostępniaj publicznie.

Słownik pojęć

Słownik pojęć K8s

Pojęcie Co to Analogia Ćwiczenie
Pod Najmniejsza jednostka — 1 lub więcej kontenerów Pokój hotelowy (kontenery = goście) 01, 03
Namespace Wirtualny klaster — izolacja zasobów Piętro w hotelu 02
ConfigMap Konfiguracja jako pary klucz-wartość Karteczka z ustawieniami 05
Secret Wrażliwe dane (zakodowane base64) Sejf w pokoju 06
Volume Montowanie plików/katalogów do kontenera Pendrive podpięty do komputera 07
Deployment Zarządza cyklem życia: repliki, aktualizacje, rollbacki, self-healing Kierownik produkcji — pilnuje obsady, wymienia pracowników bez przestoju, cofa zmiany gdy coś nie gra 11-13
Service Stały adres sieciowy do grupy Podów Recepcja hotelowa — nie musisz znać numeru pokoju 14
Ingress Routing HTTP z zewnątrz do Service’ów Portier kierujący gości do odpowiedniego wejścia 18

Jak elementy się łączą

Jak elementy się łączą

graph LR
    U["Użytkownik<br/>(przeglądarka)"]
    ING["Ingress<br/>routing HTTP"]
    SVC["Service<br/>stały adres + load balancing"]
    DEP["Deployment<br/>repliki + aktualizacje"]
    POD["Pod"]

    subgraph PODINT["Wnętrze Poda"]
        CONT["Kontener<br/>(aplikacja)"]
        CM["ConfigMap<br/>(konfiguracja)"]
        SEC["Secret<br/>(hasła, certyfikaty)"]
        PROBE["Probes<br/>(health checks)"]
        RES["Resources<br/>(CPU/Memory limits)"]
    end

    U -->|"HTTP request"| ING
    ING -->|"reguły routingu"| SVC
    SVC -->|"selector → Endpoints"| DEP
    DEP -->|"zarządza"| POD
    POD --- PODINT

    style PODINT fill:#f0f4ff,stroke:#4a6fa5

Mapa szkolenia

Szkolenie składa się z 5 modułów i 20 ćwiczeń. Każdy moduł buduje na wiedzy z poprzedniego:

Moduł Cel
1. Pierwsze kroki (01-03) Uruchomić pierwszego Poda i zrozumieć podstawowe komendy
2. Konfiguracja aplikacji (04-08) Oddzielić konfigurację od kodu, zarządzać wrażliwymi danymi
3. Niezawodność i Deployments (09-13) Zapewnić stabilność, limity zasobów i automatyczne aktualizacje
4. Sieć wewnętrzna (14-16) Zrozumieć komunikację między Podami wewnątrz klastra
5. Sieć zewnętrzna (17-20) Udostępnić aplikację światu zewnętrznemu

Pełny spis ćwiczeń z linkami znajdziesz na stronie startowej.


Zacznij od ćwiczenia 01 →

results matching ""

    No results matching ""