Deploy app lên Kubernetes
🎯 Mục tiêu: Tạo cluster local, deploy một ứng dụng stateless với Deployment và kiểm tra Pod đang chạy.
🧰 Công cụ / nền tảng: kubectl, kind (hoặc minikube), VS Code.
📦 Chuẩn bị: Cài kind + kubectl; Docker Desktop hoặc Docker Engine đang chạy.
▶️ Các bước:
# 1. Tạo cluster local
kind create cluster --name k8s-lab
kubectl cluster-info --context kind-k8s-lab
# 2. Tạo file deployment.yaml
cat > nginx-deployment.yaml <<'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-demo
namespace: default
labels:
app: nginx-demo
spec:
replicas: 3
selector:
matchLabels:
app: nginx-demo
template:
metadata:
labels:
app: nginx-demo
spec:
containers:
- name: nginx
image: nginx:1.27-alpine
ports:
- containerPort: 80
resources:
requests:
cpu: "50m"
memory: "64Mi"
limits:
cpu: "200m"
memory: "128Mi"
EOF
# 3. Apply và theo dõi
kubectl apply -f nginx-deployment.yaml
kubectl rollout status deployment/nginx-demo
# 4. Kiểm tra Pod
kubectl get pods -o wide
kubectl describe pod <pod-name>
# 5. Xem log
kubectl logs -l app=nginx-demo --tail=20
✅ Kết quả mong đợi: kubectl get pods cho thấy 3 Pod trạng thái Running; kubectl rollout status báo "successfully rolled out".
🧹 Cleanup: kubectl delete -f nginx-deployment.yaml (giữ cluster cho các lab tiếp theo).