Kubernetes for Beginners 2026: Hướng Dẫn Từ A-Z

Nội dung

Kubernetes (K8s) là nền tảng container orchestration phổ biến nhất hiện nay. Bài hướng dẫn này sẽ giúp bạn hiểu Kubernetes là gì, kiến trúc cơ bản và cách deploy ứng dụng đầu tiên.

Kubernetes (K8s) là nền tảng container orchestration phổ biến nhất hiện nay. Bài hướng dẫn này sẽ giúp bạn hiểu Kubernetes là gì, kiến trúc cơ bản và cách deploy ứng dụng đầu tiên.

Kubernetes for Beginners 2026
Kubernetes for Beginners 2026

Tóm tắt nhanh

  • Kubernetes tự động deploy, scale và quản lý containerized applications
  • Control Plane điều phối cluster, Worker Nodes chạy containers
  • Pod là đơn vị nhỏ nhất, Deployment quản lý replicas
  • Service exposing applications, ConfigMaps lưu cấu hình
  • Minikube cho local development, kubectl để interact với cluster

· VietnamTutor Team

Kubernetes là gì?

Kubernetes (thường gọi tắt là K8s) là một nền tảng mã nguồn mở để tự động hóa việc deploy, scale và quản lý các ứng dụng containerized. Nói đơn giản, Kubernetes giúp bạn quản lý nhiều containers một cách dễ dàng, đảm bảo ứng dụng luôn available và có thể scale theo nhu cầu [2].

Bạn có đang gặp tình trạng phải manually restart servers khi có lỗi? Hoặc không biết làm sao để handle khi traffic tăng đột ngột? Kubernetes chính là giải pháp cho những vấn đề này!

Trong năm 2026, Kubernetes v1.35 đã có nhiều cải tiến về performance và ease of use [2]. Cùng tìm hiểu cách sử dụng Kubernetes từ cơ bản nhé!

Kubernetes overview diagram
Kubernetes – Nền tảng Container Orchestration

Kiến trúc Kubernetes

Kubernetes cluster bao gồm Control Plane (Master Node) và Worker Nodes. Control Plane điều phối hoạt động, Worker Nodes chạy thực các containers.

Hãy tưởng tượng Control Plane như “bộ não” của cả hệ thống, còn Worker Nodes như “công nhân” thực sự chạy công việc [5].

Control Plane (Master Node)

Control Plane chịu trách nhiệm quản lý cluster, bao gồm:

  • etcd: Database lưu trữ toàn bộ cluster state
  • kube-apiserver: API endpoint để interact với cluster
  • kube-controller-manager: Quản lý các controllers
  • kube-scheduler: Quyết định Pod nào chạy ở đâu

Worker Nodes

Mỗi Worker Node chạy:

  • kubelet: Agent giao tiếp với Control Plane
  • kube-proxy: Quản lý network routing
  • Container Runtime: Docker, containerd, hoặc CRI-O

Điều thú vị là bạn có thể có nhiều Worker Nodes, và Kubernetes sẽ tự động phân phối workload giữa chúng! Đây là cách đạt được high availability.

Kubernetes architecture diagram
Kiến trúc Kubernetes Cluster

Các khái niệm cơ bản trong Kubernetes

Để hiểu Kubernetes, bạn cần nắm vững các khái niệm cốt lõi từ Pod đến Deployment.

Pod

Pod là đơn vị nhỏ nhất trong Kubernetes, đại diện cho một hoặc nhiều containers chạy cùng nhau.

Thông thường, mỗi Pod chạy một container duy nhất. Nhưng bạn cũng có thể chạy nhiều containers phụ trợ trong cùng Pod khi chúng cần share resources chặt chẽ.

apiVersion: v1
kind: Pod
metadata:
  name: my-app
spec:
  containers:
  - name: web
    image: nginx:alpine
    ports:
    - containerPort: 80

Deployment

Deployment cho phép bạn declarative quản lý Pods, bao gồm scaling, rolling updates, và self-healing.

Thay vì tạo Pod trực tiếp, bạn nên luôn luôn dùng Deployment. Điều này đảm bảo applications luôn running với số lượng replicas mong muốn.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: web
        image: nginx:alpine

Thú vị nhỉ! Chỉ với vài dòng config, bạn đã có 3 replicas của ứng dụng chạy và tự động self-healing!

Service

Service expose một tập hợp Pods như một network service, cho phép các Pods khác hoặc external traffic truy cập.

Có 4 loại Service:

  • ClusterIP: Chỉ accessible trong cluster (default)
  • NodePort: Expose trên mỗi Node’s IP
  • LoadBalancer: Dùng external load balancer
  • ExternalName: Map đến external DNS

ConfigMap và Secret

ConfigMap lưu configuration data, Secret lưu sensitive data như passwords, API keys.

Cách này giúp tách biệt configuration khỏi application code, making it easier to manage và migrate.

Kubernetes basic concepts illustration
Quan hệ giữa Pod, Deployment và Service

Cài đặt Kubernetes cho Development

Cách dễ nhất để chạy Kubernetes locally là sử dụng Minikube — một tool cho phép bạn chạy single-node Kubernetes cluster trên máy local [10].

Cài đặt Minikube

Trên macOS:

# Cài đặt Homebrew nếu chưa có
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Cài đặt Minikube
brew install minikube

# Cài đặt kubectl
brew install kubectl

Trên Linux:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

Khởi động Cluster

# Khởi tạo cluster
minikube start

# Kiểm tra cluster status
kubectl cluster-info

# Xem nodes
kubectl get nodes

Mình khuyên bạn nên dùng Docker driver cho Mac và Linux, nó nhẹ và nhanh hơn nhiều so với VirtualBox!

Tạo Deployment đầu tiên

Bây giờ chúng ta sẽ deploy ứng dụng đầu tiên lên Kubernetes sử dụng kubectl — command line tool để interact với cluster.

Đầu tiên, hãy tạo một Deployment:

# Tạo deployment với nginx
kubectl create deployment nginx --image=nginx:alpine

# Xem deployment
kubectl get deployments

# Xem pods
kubectl get pods

Sau vài giây, bạn sẽ thấy Pod của nginx đang chạy! Kubernetes đã tự động pull image và start container.

Để xem logs:

kubectl logs -l app=nginx

Để access vào container:

kubectl exec -it nginx-xxxxx -- /bin/sh

Thật dễ dàng phải không? Bạn đã có ứng dụng đầu tiên chạy trên Kubernetes!

Kubernetes deployment workflow
Quy trình Deploy ứng dụng

Expose Service ra ngoài

Để truy cập ứng dụng từ bên ngoài cluster, bạn cần tạo một Service.

Với Minikube, bạn có thể dùng NodePort để expose service:

# Expose nginx service
kubectl expose deployment nginx --type=NodePort --port=80

# Xem service
kubectl get services

# Truy cập qua Minikube
minikube service nginx

Hoặc nếu bạn dùng Docker Desktop’s Kubernetes, có thể dùng LoadBalancer:

kubectl expose deployment nginx --type=LoadBalancer --port=80

Sau khi expose, bạn có thể truy cập ứng dụng qua browser! Đây là bước quan trọng để testing trước khi deploy lên production.

Một tip nhỏ: trong development, bạn có thể dùng kubectl port-forward để forward traffic từ local machine đến pod:

kubectl port-forward nginx-xxxxx 8080:80

Sau đó truy cập http://localhost:8080 trên browser!

Scale ứng dụng

Một trong những điểm mạnh nhất của Kubernetes là khả năng scale ứng dụng dễ dàng.

Scale up deployment:

# Scale lên 5 replicas
kubectl scale deployment nginx --replicas=5

# Kiểm tra
kubectl get pods -l app=nginx

Kubernetes sẽ tự động schedule các Pods mới vào các Nodes available. Bạn sẽ thấy Pod count tăng lên ngay lập tức!

Scale down:

# Scale xuống 2 replicas
kubectl scale deployment nginx --replicas=2

Điều tuyệt vời là Kubernetes còn hỗ trợ Horizontal Pod Autoscaler (HPA) để tự động scale dựa trên CPU usage hoặc custom metrics:

kubectl autoscale deployment nginx --min=2 --max=10 --cpu-percent=80

Với HPA, Kubernetes sẽ tự động scale up khi CPU > 80%, và scale down khi traffic giảm. Thật tiện lợi!

Kubernetes autoscaling diagram
Horizontal Pod Autoscaling trong Kubernetes

Update ứng dụng với Rolling Updates

Kubernetes hỗ trợ Rolling Updates — cho phép update ứng dụng không downtime.

Update image:

# Update nginx lên phiên bản mới
kubectl set image deployment/nginx nginx=nginx:1.25

# Xem trạng thái update
kubectl rollout status deployment/nginx

Kubernetes sẽ:

  1. Tạo Pod mới với image mới
  2. Chờ Pod mới ready
  3. Xóa Pod cũ
  4. Lặp lại cho đến khi tất cả Pods đều updated

Điều này đảm bảo ứng dụng luôn available trong suốt quá trình update!

Rollback nếu có lỗi:

# Xem history
kubectl rollout history deployment/nginx

# Rollback về version trước
kubectl rollout undo deployment/nginx

# Rollback về version cụ thể
kubectl rollout undo deployment/nginx --to-revision=2

Đây là tính năng mà mình đặc biệt thích — bạn có thể rollback ngay lập tức nếu update có vấn đề!

Kubernetes v1.35 và những cập nhật 2026

Kubernetes v1.35 mang đến nhiều cải tiến về performance, security và usability [2].

Những features mới trong 2026

  • Improved Gateway API: Gateway API đã stable và thay thế Ingress trong nhiều use cases [4]
  • Better Windows support: Hỗ trợ tốt hơn cho Windows containers trong production
  • Enhanced security: Cải tiến về Pod Security Standards và RuntimeClass
  • Simplified cluster management: Công cụ quản lý cluster trở nên dễ hơn
  • Better resource management: Cải tiến về resource quota và limit ranges

Nếu bạn đang dùng version cũ, đây là thời điểm tốt để upgrade!

Nên học gì tiếp?

Sau khi nắm vững kiến thức cơ bản, bạn có thể explore thêm:

  • Helm: Package manager cho Kubernetes
  • Service Mesh: Istio, Linkerd cho traffic management
  • GitOps: ArgoCD, Flux cho declarative deployments
  • Monitoring: Prometheus, Grafana cho observability

Đừng quên tham khảo Kubernetes Fundamentals và official tutorials để practice thêm!

Kết luận

Kubernetes là công cụ mạnh mẽ cho container orchestration, giúp bạn deploy, scale và quản lý applications một cách hiệu quả. Trong bài viết này, bạn đã học được:

  • Kubernetes là gì và tại sao nó quan trọng
  • Kiến trúc cơ bản của Kubernetes cluster
  • Các khái niệm: Pod, Deployment, Service, ConfigMap
  • Cách deploy ứng dụng đầu tiên
  • Cách scale và update applications

Bạn đã sẵn sàng để bắt đầu với Kubernetes? Hãy thử deploy ứng dụng của bạn và chia sẻ kinh nghiệm nhé!

Nguồn tham khảo

  1. Kubernetes Tutorial for Beginners 2026 | KodeKloud
  2. Kubernetes 2026 Complete Guide: v1.35
  3. Top 28 Kubernetes resources for 2026
  4. How to Learn Kubernetes in 2026
  5. Kubernetes for Absolute Beginners: Deploy Your First App in 2026
  6. Kubernetes Tutorial For Beginners
  7. Kubernetes Kickstart 2026
  8. Getting started | Kubernetes
  9. How To Get Started With Kubernetes: A Practical Guide
  10. Learn Kubernetes Basics

Các câu hỏi thường gặp

Kubernetes khác gì với Docker Compose?

Docker Compose phù hợp cho development và small deployments với single host. Kubernetes dành cho production-scale với multiple nodes, high availability, và advanced orchestration features như auto-scaling, service mesh, và complex deployments.

Tôi cần bao nhiêu RAM để chạy Minikube?

Minikube yêu cầu tối thiểu 2GB RAM, nhưng mình khuyên nên có 4GB+ để chạy mượt mà và có thể test với nhiều pods cùng lúc.

Làm sao để debug khi Pod không chạy?

Dùng kubectl describe pod [pod-name] để xem chi tiết trạng thái. kubectl logs [pod-name] để xem logs. kubectl exec -it [pod-name] -- /bin/sh để access vào container và debug trực tiếp.

Kubernetes có miễn phí không?

Kubernetes là open-source, hoàn toàn miễn phí. Bạn có thể tự host hoặc dùng managed services như GKE (Google), EKS (AWS), AKS (Azure) — các managed services có phí cho infrastructure.

Khi nào nên dùng Pod thay vì Deployment?

Trong hầu hết trường hợp, bạn nên dùng Deployment thay vì tạo Pod trực tiếp. Deployment cung cấp self-healing, scaling, và rolling updates. Chỉ tạo Pod trực tiếp cho testing hoặc debug.

Picture of Tú Anh

Tú Anh

Mình là Tú Anh — cây bút chính tại VietnamTutor. Đam mê công nghệ, viết lách và biến những kiến thức phức tạp thành nội dung dễ hiểu cho người đọc Việt Nam.Bắt đầu hành trình từ niềm yêu thích lập trình web và SEO, mình đã dành nhiều năm tìm hiểu cách xây dựng website hiệu quả, tối ưu tốc độ và đưa nội dung đến đúng người cần. Mỗi bài viết đều là kết quả của việc research kỹ lưỡng, test thực tế và đúc rút kinh nghiệm từ hàng trăm dự án.Ngoài viết về WordPress, SEO và phát triển web, mình cũng hay chia sẻ về các xu hướng công nghệ mới — từ AI đến automation — với góc nhìn thực dụng, không màu mè.Mục tiêu đơn giản: giúp bạn làm chủ công nghệ, không để công nghệ làm khó bạn.