L76 — Kubernetes Basics

Ba mô-đun tương tác: quan hệ các đối tượng K8s · rolling update zero-downtime · hành vi probe (liveness vs readiness).

1. Quan hệ các đối tượng (object relationship)

Deployment quản ReplicaSet, ReplicaSet giữ N Pod. Service chọn các Pod qua label và load-balance traffic. Đổi số replica để xem ReplicaSet tự tạo/xóa Pod (self-healing số lượng).

replicas: 3
Deployment go-app → quản →
ReplicaSet (rev-1) → giữ N →
Pods
Service go-app (ClusterIP) → selector app=go-app → load-balance → các Pod ready ở trên

2. Rolling update — zero-downtime

strategy: maxSurge=1, maxUnavailable=0. Tạo Pod v2, ĐỢI nó ready, rồi mới terminate 1 Pod v1. Luôn ≥ 3 Pod ready phục vụ → không downtime. Bật "readiness probe" off để thấy vì sao thiếu probe gây rớt request.

v1 (cũ)
v2 (mới)
Ready phục vụ traffic: 3 / mong muốn 3   |   idle

3. Hành vi probe — liveness vs readiness

kubelet hỏi Pod định kỳ. liveness fail → RESTART container. readiness fail → GỠ khỏi Service endpoints (không restart). Bấm để làm fail từng probe và quan sát khác biệt.

Pod go-app-x9z: Running
Restart count: 0
liveness: OK   readiness: OK
go-app-x9z
Service endpoints (LB)
go-app-x9z ✓ (nhận traffic)