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.

Tú Anh

Cây bút chính tại VietnamTutor

Bài viết cùng chuyên mục

Nâng Cấp Laravel 13: Checklist 10 Bước Không Thể Bỏ Qua 2026

Hướng dẫn nâng cấp Laravel 13 chi tiết với checklist 10 bước. Từ kiểm tra PHP 8.3, cập nhật dependencies, đến xử lý lỗi thường gặp

Hardening Laravel Production: Checklist Bảo Mật Toàn Diện 2026

Checklist hardening Laravel production toàn diện. Từ cấu hình server, database, SSL đến security headers, rate limiting và monitoring.

Authentication & Authorization Trong Laravel: Hướng Dẫn A-Z 2026

Hướng dẫn chi tiết cách xây dựng hệ thống Authentication (xác thực) và Authorization (phân quyền) trong Laravel với Breeze, Fortify, Sanctum, Policies và Gates.

Bảo Mật Laravel: 10 Lỗi Phổ Biến & Cách Phòng 2026

Hướng dẫn 10 lỗi bảo mật phổ biến nhất trong Laravel và cách phòng tránh hiệu quả. Từ XSS, SQL injection đến authentication vulnerabilities.

Migration PHP Attributes Laravel 13: Hướng Dẫn Chi Tiết

Cách chuyển đổi từ protected properties sang PHP Attributes trong Laravel 13 với hướng dẫn từng bước và code examples chi tiết.

Laravel 13 Có Gì Mới? Tổng Hợp Tính Năng Mới 2026

Laravel 13 ra mắt ngày 17/3/2026 với PHP 8.3, PHP Attributes, AI SDK và nhiều cải tiến. Khám phá chi tiết các tính năng mới của

Docker Compose Best Practices 2026: 10 Tips Quan Trọng

Docker Compose giúp bạn quản lý multi-container applications dễ dàng hơn. Bài viết này tổng hợp 10 best practices quan trọng nhất để sử dụng Docker

Lỗ hổng RCE (CVE-2025-55182) trên React, Next.js?

Cảnh báo khẩn cấp: React2Shell (CVE-2025-55182) gây RCE nghiêm trọng cho React/Next.js. Nắm cơ chế, dấu hiệu & phòng thủ cấp bách để bảo vệ ứng

Dead-Letter Queue: Giải pháp cứu cánh cho tin nhắn lỗi hệ thống

DLQ là chìa khóa quản lý tin nhắn lỗi hiệu quả trong hệ thống phân tán. Đảm bảo tin nhắn không bị mất, tăng độ tin

Lập trình viên: Xây doanh nghiệp một người, kiếm 10.000 USD/tháng

Lập trình viên: Khám phá khung làm việc để xây dựng doanh nghiệp một người, kiếm 10.000 USD/tháng. Biến kỹ năng code thành cỗ máy tiền,