Skip to Content

Kubernetes (K8s): Orchestration cho Container

Tìm hiểu về Kubernetes và cách quản lý container ở quy mô lớn
December 27, 2025 by
Kubernetes (K8s): Orchestration cho Container
OdooBot

Kubernetes là gì?

Kubernetes (K8s) là một platform mã nguồn mở để tự động hóa việc triển khai, mở rộng và quản lý các ứng dụng containerized. Được phát triển bởi Google và hiện được quản lý bởi Cloud Native Computing Foundation (CNCF).

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

  • Pod: Đơn vị nhỏ nhất trong K8s, chứa một hoặc nhiều container
  • Node: Máy vật lý hoặc ảo chạy các Pod
  • Cluster: Tập hợp các Node
  • Deployment: Quản lý việc tạo và update Pod
  • Service: Expose Pod ra ngoài và load balancing
  • Namespace: Phân chia tài nguyên trong cluster

Cài đặt Kubernetes

# Cài đặt kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

# Cài đặt Minikube (cho môi trường local)
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

# Khởi động Minikube
minikube start

Deployment YAML

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.24
        ports:
        - containerPort: 80

Service YAML

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  type: LoadBalancer
  selector:
    app: nginx
  ports:
  - port: 80
    targetPort: 80

Các lệnh kubectl cơ bản

# Deploy ứng dụng
kubectl apply -f deployment.yaml

# Xem pods
kubectl get pods

# Xem services
kubectl get services

# Xem logs
kubectl logs <pod-name>

# Scale deployment
kubectl scale deployment nginx-deployment --replicas=5

# Delete deployment
kubectl delete deployment nginx-deployment

Tại sao nên sử dụng Kubernetes?

  • Auto-scaling: Tự động scale ứng dụng dựa trên load
  • Self-healing: Tự động restart container bị lỗi
  • Load balancing: Phân phối traffic đều giữa các Pod
  • Rolling updates: Update ứng dụng không downtime
  • Secret management: Quản lý thông tin nhạy cảm
  • Service discovery: Tự động phát hiện và kết nối service

Kết luận

Kubernetes là công cụ không thể thiếu khi bạn cần quản lý container ở quy mô lớn. Mặc dù có độ phức tạp nhất định, nhưng những lợi ích mà nó mang lại là rất đáng giá cho các hệ thống production.

Docker và Containerization: Hướng dẫn cơ bản
Tìm hiểu về Docker và cách containerize ứng dụng của bạn