15 part series

Kubernetes Với Minikube

Học Kubernetes từ nền tảng bằng minikube — một cluster gọn chạy ngay trên máy bạn. Series đi qua kiến trúc, Pod, Deployment, Service, ConfigMap/Secret, lưu trữ, Ingress, health check, autoscaling và các loại workload, khép lại bằng một dự án deploy hoàn chỉnh. Mọi lệnh chạy thật trên minikube, manifest lưu tại github.com/nghiadaulau/kubernetes-minikube-series. Bám docs chính thức kubernetes.io.

1

Kubernetes Là Gì và Vì Sao Cần Orchestration

Mở đầu series: từ một container đơn lẻ tới việc chạy hàng chục container trên nhiều máy — vấn đề mà Kubernetes sinh ra để giải. Vì sao 'orchestration' và 'trạng thái mong muốn' là hai ý quan trọng nhất, minikube là gì, và lộ trình cả series.

Kai··5 min read·DevOpsContainer
2

Kiến Trúc Kubernetes: Control Plane và Node

Mở nắp capo một cluster Kubernetes: control plane (api-server, etcd, scheduler, controller-manager) là bộ não, node với kubelet và kube-proxy là nơi ứng dụng chạy. Bài này giải thích vai trò từng thành phần ở mức tổng quan — và soi chúng chạy thật trong minikube.

Kai··5 min read·DevOpsArchitecture
3

Cài Đặt minikube + kubectl, Cluster Đầu Tiên

Bắt tay vào việc: cài kubectl và minikube, khởi động cluster đầu tiên bằng driver Docker, hiểu kubeconfig và context, rồi chạy pod đầu tiên như một 'hello world'. Kèm toàn bộ output thật từ minikube.

Kai··4 min read·DevOpsKubernetes
4

Pod: Đơn Vị Nhỏ Nhất Trong Kubernetes

Pod là viên gạch nền của Kubernetes — không phải container, mà là một nhóm container chia sẻ mạng và lưu trữ. Bài này: viết pod bằng YAML, apply, xem trạng thái, đọc log, exec vào trong, port-forward, và bài học vì sao không ai chạy pod trần ở production.

Kai··5 min read·DevOpsKubernetes
5

Deployment và ReplicaSet: Giữ Ứng Dụng Luôn Sống

Deployment là đối tượng bạn dùng nhiều nhất để chạy ứng dụng: nó giữ N bản sao pod luôn sống (qua ReplicaSet), tự dựng lại khi pod chết, scale lên/xuống, và cập nhật phiên bản dần không downtime — kèm rollback. Bài này chứng minh từng tính chất bằng lệnh thật.

Kai··6 min read·DevOpsDeployment
6

Service: Địa Chỉ Ổn Định và Cân Bằng Tải

Pod đến rồi đi, IP đổi liên tục — vậy gọi chúng kiểu gì? Service cho một địa chỉ ổn định trước nhóm pod và tự chia tải. Bài này: ClusterIP, NodePort, LoadBalancer khác nhau ra sao, DNS nội bộ giúp gọi service bằng tên, và kube-proxy đứng sau.

Kai··5 min read·DevOpsNetworking
7

Namespace, Labels và Selectors

Hai cơ chế tổ chức nền tảng của Kubernetes: namespace chia cluster thành những ngăn tách biệt, còn label/selector là cách gắn thẻ và chọn lọc tài nguyên — chính là 'chất keo' mà Deployment và Service dùng để tìm pod. Bài này làm rõ cả hai bằng ví dụ thật.

Kai··4 min read·DevOpsKubernetes
8

ConfigMap và Secret: Tách Cấu Hình Khỏi Image

Cùng một image phải chạy được ở dev, staging, production — nghĩa là cấu hình không thể nằm cứng trong image. ConfigMap giữ cấu hình thường, Secret giữ dữ liệu nhạy cảm. Bài này: tạo và inject chúng vào pod qua biến môi trường lẫn file, kèm cảnh báo quan trọng về 'Secret chỉ là base64'.

Kai··4 min read·DevOpsConfigMap
9

Lưu Trữ: Volumes, PV, PVC và StorageClass

Dữ liệu trong pod bay hơi cùng pod — không ổn cho database hay file người dùng. Kubernetes tách 'yêu cầu lưu trữ' (PVC) khỏi 'ổ đĩa thật' (PV), với StorageClass cấp phát động. Bài này chứng minh dữ liệu sống lâu hơn pod bằng một thí nghiệm xóa-rồi-dựng-lại.

Kai··5 min read·DevOpsStorage
10

Ingress: Định Tuyến HTTP Vào Cluster

NodePort cho mỗi service một cổng lạ — không ổn khi có nhiều service. Ingress là một điểm vào HTTP duy nhất, định tuyến theo tên miền và đường dẫn tới đúng service, kèm TLS. Bài này: bật ingress addon của minikube, viết Ingress rule, và test định tuyến theo Host.

Kai··4 min read·DevOpsNetworking
11

Health Checks: Liveness và Readiness Probes

Làm sao Kubernetes biết một pod 'Running' có thật sự khoẻ và sẵn sàng nhận traffic? Qua probe. Liveness probe restart container treo, readiness probe giữ traffic khỏi pod chưa sẵn sàng. Bài này demo cả hai bằng pod cố tình hỏng, xem K8s phản ứng.

Kai··5 min read·DevOpsKubernetes
12

Resource Requests/Limits và Autoscaling (HPA)

Mỗi pod cần nói rõ nó muốn bao nhiêu CPU/RAM — đó là cách scheduler đặt pod đúng chỗ và cluster không sập vì một pod ngốn hết tài nguyên. Khai báo xong, HorizontalPodAutoscaler tự tăng/giảm số bản sao theo tải. Bài này tạo tải thật và xem HPA scale từ 1 lên nhiều pod.

Kai··5 min read·DevOpsAutoscaling
13

Các Loại Workload: StatefulSet, DaemonSet, Job và CronJob

Deployment hợp cho app không trạng thái, nhưng không phải mọi thứ đều như vậy. StatefulSet cho app cần danh tính ổn định (database), DaemonSet cho thứ phải chạy trên mọi node (agent log), Job/CronJob cho tác vụ chạy-rồi-xong. Bài này chạy thật từng loại và chỉ rõ khi nào dùng cái nào.

Kai··5 min read·DevOpsKubernetes
14

Quan Sát và Gỡ Lỗi: logs, exec, describe, events

Khi pod không chạy, bạn cần biết nhìn vào đâu. Bài này rèn bộ kỹ năng gỡ lỗi hằng ngày qua hai ca hỏng thật — ImagePullBackOff và CrashLoopBackOff: đọc describe/events để biết vì sao, logs để xem app nói gì, exec để soi bên trong, và dashboard để nhìn tổng thể.

Kai··5 min read·DevOpsTroubleshooting
15

Capstone: Deploy Ứng Dụng Hoàn Chỉnh và Tổng Kết Series

Ghép tất cả: một ứng dụng nhiều thành phần (frontend nhiều bản sao + database có lưu trữ) triển khai lên minikube từ đầu tới cuối, dùng đủ Deployment, Service, ConfigMap/Secret, PVC, Ingress, probes và resources. Rồi dọn dẹp cluster, tổng kết hành trình và gợi ý học tiếp.

Kai··6 min read·DevOpsKubernetes