← Về danh sách bài học
Bài 2/25
🛠️ Bài 2: Cài Đặt Môi Trường Kubernetes
🎯 Sau bài học này, bạn sẽ:
- Cài đặt được kubectl (CLI để tương tác với K8s)
- Cài đặt Minikube hoặc Docker Desktop Kubernetes
- Khởi tạo và kiểm tra cluster local
- Thực hành các lệnh kubectl cơ bản
1. Các Công Cụ Cần Thiết
| Công cụ | Mô tả |
|---|---|
| kubectl | CLI để giao tiếp với Kubernetes cluster |
| Minikube | Chạy K8s cluster trên máy local (VM hoặc container) |
| Docker Desktop | Tích hợp sẵn K8s (macOS/Windows) |
| kind | K8s in Docker - nhẹ, nhanh |
💡 Khuyến nghị cho người mới:
• macOS/Windows: Docker Desktop với K8s tích hợp (đơn giản nhất)
• Linux: Minikube với driver docker
• macOS/Windows: Docker Desktop với K8s tích hợp (đơn giản nhất)
• Linux: Minikube với driver docker
2. Cài Đặt kubectl
🍎 macOS
# Cách 1: Homebrew (khuyên dùng)
brew install kubectl
# Cách 2: Tải binary
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
# Kiểm tra
kubectl version --client
🪟 Windows
# Cách 1: Chocolatey
choco install kubernetes-cli
# Cách 2: Scoop
scoop install kubectl
# Cách 3: Tải từ web
# https://dl.k8s.io/release/v1.28.0/bin/windows/amd64/kubectl.exe
# Kiểm tra (PowerShell)
kubectl version --client
🐧 Linux (Ubuntu/Debian)
# Cài đặt kubectl
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
# Kiểm tra
kubectl version --client
3. Cài Đặt Minikube
🍎 macOS
# Homebrew
brew install minikube
# Hoặc tải binary
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
sudo install minikube-darwin-amd64 /usr/local/bin/minikube
🪟 Windows
# Chocolatey
choco install minikube
# Hoặc tải installer từ:
# https://minikube.sigs.k8s.io/docs/start/
🐧 Linux
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
4. Khởi Tạo Cluster
🚀 Với Minikube
# Khởi tạo cluster (lần đầu mất vài phút)
minikube start
# Với driver cụ thể
minikube start --driver=docker # Dùng Docker
minikube start --driver=hyperkit # macOS native
minikube start --driver=virtualbox
# Kiểm tra status
minikube status
# Output mong đợi:
# minikube
# type: Control Plane
# host: Running
# kubelet: Running
# apiserver: Running
# kubeconfig: Configured
🐳 Với Docker Desktop
1Mở Docker Desktop
Settings → Kubernetes → ✅ Enable Kubernetes → Apply & Restart
2Chờ khởi tạo
Kubernetes icon chuyển xanh là đã sẵn sàng (3-5 phút lần đầu)
⚠️ Yêu cầu hệ thống:
• RAM: Tối thiểu 4GB (khuyến nghị 8GB+)
• CPU: 2 cores trở lên
• Disk: 20GB trống
• RAM: Tối thiểu 4GB (khuyến nghị 8GB+)
• CPU: 2 cores trở lên
• Disk: 20GB trống
5. Kiểm Tra Cluster
# Xem cluster info
kubectl cluster-info
# Output:
# Kubernetes control plane is running at https://127.0.0.1:xxxxx
# CoreDNS is running at https://127.0.0.1:xxxxx/api/v1/...
# Xem các nodes
kubectl get nodes
# Output:
# NAME STATUS ROLES AGE VERSION
# minikube Ready control-plane 5m v1.28.0
# Xem tất cả namespaces
kubectl get namespaces
# Xem pods trong namespace kube-system
kubectl get pods -n kube-system
💡 Mẹo hay: Tạo alias để gõ nhanh hơn
alias k='kubectl'alias kgp='kubectl get pods'
6. Lệnh kubectl Thường Dùng
# Xem resources
kubectl get pods # Liệt kê pods
kubectl get pods -A # Tất cả namespaces
kubectl get pods -o wide # Chi tiết hơn
kubectl get deployments
kubectl get services
kubectl get all # Tất cả resources
# Mô tả chi tiết
kubectl describe pod
kubectl describe node
# Logs
kubectl logs
kubectl logs -f # Follow realtime
# Exec vào container
kubectl exec -it -- /bin/sh
# Apply/Delete từ file
kubectl apply -f
kubectl delete -f
# Context (chuyển cluster)
kubectl config get-contexts
kubectl config use-context minikube
7. Thực Hành: Chạy Pod Đầu Tiên
# Tạo pod nginx nhanh
kubectl run my-nginx --image=nginx --port=80
# Kiểm tra
kubectl get pods
# NAME READY STATUS RESTARTS AGE
# my-nginx 1/1 Running 0 30s
# Chi tiết pod
kubectl describe pod my-nginx
# Xóa pod
kubectl delete pod my-nginx
🎉 Chúc mừng!
Bạn đã cài đặt thành công môi trường K8s và chạy Pod đầu tiên!
Bạn đã cài đặt thành công môi trường K8s và chạy Pod đầu tiên!
📝 Tóm Tắt Bài Học
- kubectl: CLI bắt buộc để làm việc với K8s
- Minikube/Docker Desktop: Chạy K8s local để học
minikube start: Khởi tạo clusterkubectl get: Xem resourceskubectl describe: Chi tiết resourcekubectl run: Tạo pod nhanh