Hướng dẫn cài đặt và sử dụng Kubernetes (K8s) trên Ubuntu cho người mới bắt đầu Chuyên mục Devops 2025-06-17 0 Lượt xem 0 Lượt thích 0 Bình luận
Hướng dẫn cài đặt và sử dụng Kubernetes (K8s) trên Ubuntu cho người mới bắt đầu
1. Giới thiệu
Trong bài viết này, chúng ta sẽ cùng nhau cài đặt Kubernetes trên máy Ubuntu để thực hành và tìm hiểu về cách Kubernetes hoạt động. Bài viết sẽ giải thích chi tiết các thành phần được cài, cách chạy Pod, triển khai Service và những lưu ý quan trọng khi sử dụng Kubernetes trong thực tế.
2. Cài đặt Kubernetes trên Ubuntu với Minikube
Bước 1: Cài đặt Docker
Minikube sử dụng Docker làm driver chính. Cài Docker:
sudo apt update
sudo apt install -y docker.io
sudo usermod -aG docker $USER
newgrp docker
Bước 2: Cài Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube
minikube version
Bước 3: Cài kubectl
curl -LO https://dl.k8s.io/release/v1.30.1/bin/linux/amd64/kubectl
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
kubectl version --client
Bước 4: Khởi động Minikube
minikube start --driver=docker
Câu lệnh này tạo 1 Node cluster có đủ các thành phần Control Plane và Worker Node.
3. Giải thích các thành phần đã cài
3.1. kubectl
-
Là CLI dùng để tương tác với Kubernetes cluster
-
Gửi lệnh đến API Server
3.2. Minikube
-
Tạo cluster local gồm control-plane + worker
-
Hỗ trợ Dashboard GUI, LoadBalancer, volume...
3.3. Docker
-
Là container runtime
-
Chạy container cho Pod bên trong Node
4. Triển khai một ứng dụng đơn giản
Bước 1: Tạo Deployment
kubectl create deployment my-nginx --image=nginx
Bước 2: Tạo Service
kubectl expose deployment my-nginx --type=NodePort --port=80
Bước 3: Mở ứng dụng
minikube service my-nginx
Câu lệnh này tự động mở browser để xem app.
5. Các câu hỏi và lưu ý quan trọng
5.1. Chạy nhiều Pod trong 1 Node để scale được không?
✨ Được! Kubernetes cho phép chạy nhiều Pod trong 1 Node nếu tài nguyên (CPU, RAM) cho phép.
Nhưng nếu Node bị sập, tất cả Pod đó sẽ bị mất theo.
5.2. Vậy có cần nhiều Node không?
✅ Nếu bạn muốn HA (High Availability) hoặc prod environment, nên có nhiều Node để Kubernetes có thể tự chia Pod qua nhiều máy.
5.3. Tại sao expose port 80 nhưng lại truy cập qua port 30456?
-
Khi expose kiểu NodePort, Kubernetes sẽ mapping port 80 nội bộ vào một port ngẫu nhiên trên node (vd: 30456)
-
Phải truy cập qua localhost:30456 hoặc dùng minikube service để tự động forward
5.4. Cách bật Dashboard GUI
minikube dashboard
Lệnh này sẽ khởi động giao diện Web GUI và mở trong browser.
6. Tổng hợp các lệnh thường dùng
🔧 Cluster & Node
minikube start --driver=docker # Khởi tạo cluster với driver Docker
kubectl get nodes # Xem danh sách node
kubectl describe node <node-name> # Xem chi tiết tài nguyên node
📦 Làm việc với Pod/Deployment
kubectl create deployment <name> --image=<image> # Tạo Deployment
kubectl get pods # Danh sách pod
kubectl describe pod <pod-name> # Chi tiết pod
kubectl delete pod <pod-name> # Xóa pod
🔄 Scale ứng dụng
kubectl scale deployment <name> --replicas=3 # Scale lên 3 Pod
🌐 Service & Networking
kubectl expose deployment <name> --type=NodePort --port=80 # Tạo Service
kubectl get svc # Xem danh sách service
minikube service <svc-name> # Mở dịch vụ trong browser
📊 Dashboard GUI
minikube dashboard # Mở giao diện GUI
⚙️ Cấu hình, Debug
kubectl get events # Xem sự kiện hệ thống
kubectl logs <pod-name> # Xem log của pod
kubectl describe <resource> <name> # Mô tả chi tiết tài nguyên
7. Kết luận
-
Minikube là công cụ hoàn hảo để bắt đầu với Kubernetes local
-
Cài đặt nhanh, không cần cloud
-
Hiểu rõ Node, Pod, Service và scaling sẽ giúp bạn lên prod dễ dàng hơn
Bình luận (0)