Việc xây dựng một cụm Kubernetes (K8s) cục bộ trên Windows trở nên đơn giản hơn bao giờ hết nhờ sự hỗ trợ từ Docker Desktop. Công cụ này tích hợp sẵn một nút điều khiển K8s, giúp lập trình viên triển khai và kiểm thử ứng dụng mà không cần thiết lập máy ảo phức tạp.
1. Kích hoạt Kubernetes trên Docker Desktop
Sau khi cài đặt Docker Desktop, bạn cần bật tính năng Kubernetes trong phần cài đặt:
- Mở Settings từ biểu tượng bánh răng.
- Chọn mục Kubernetes ở menu bên trái.
- Tích chọn Enable Kubernetes và nhấn Apply & Restart.
- Đợi quá trình cài đặt hoàn tất cho đến khi biểu tượng Kubernetes ở góc dưới cùng bên trái chuyển sang màu xanh lá cây.
2. Cấu hình Context cho kubectl
Để tương tác với cụm K8s vừa khởi tạo, bạn cần đảm bảo kubectl đang trỏ đúng vào context của Docker Desktop. Sử dụng các lệnh sau trong PowerShell hoặc Command Prompt:
# Kiểm tra danh sách các context hiện có
kubectl config get-contexts
# Chuyển sang sử dụng context của docker-desktop
kubectl config use-context docker-desktop
# Xác nhận thông tin cụm đang hoạt động
kubectl cluster-info
# Kiểm tra trạng thái của node duy nhất
kubectl get nodes
3. Triển khai Kubernetes Dashboard
Mặc định, Kubernetes không đi kèm giao diện đồ họa. Bạn có thể cài đặt Dashboard chính thức bằng cách sử dụng tệp cấu hình YAML. Tạo một tệp tên là k8s-dashboard-setup.yaml với nội dung sau:
apiVersion: v1
kind: Namespace
metadata:
name: kubernetes-dashboard
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
---
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
ports:
- port: 443
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
replicas: 1
selector:
matchLabels:
k8s-app: kubernetes-dashboard
template:
metadata:
labels:
k8s-app: kubernetes-dashboard
spec:
containers:
- name: kubernetes-dashboard
image: kubernetesui/dashboard:v2.7.0
imagePullPolicy: Always
ports:
- containerPort: 8443
protocol: TCP
args:
- --auto-generate-certificates
- --namespace=kubernetes-dashboard
volumeMounts:
- name: kubernetes-dashboard-certs
mountPath: /certs
- mountPath: /tmp
name: tmp-volume
volumes:
- name: kubernetes-dashboard-certs
secret:
secretName: kubernetes-dashboard-certs
- name: tmp-volume
emptyDir: {}
serviceAccountName: kubernetes-dashboard
Thực thi lệnh sau để triển khai:
kubectl apply -f k8s-dashboard-setup.yaml
4. Tạo tài khoản quản trị (Admin User)
Để đăng nhập vào Dashboard, bạn cần một tài khoản có quyền quản trị cao nhất. Tạo tệp dashboard-admin.yaml:
apiVersion: v1
kind: ServiceAccount
metadata:
name: dev-admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: dev-admin-user-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: dev-admin-user
namespace: kubernetes-dashboard
Áp dụng cấu hình và lấy Token đăng nhập:
# Tạo Service Account và Role Binding
kubectl apply -f dashboard-admin.yaml
# Khởi tạo token cho tài khoản vừa tạo
kubectl -n kubernetes-dashboard create token dev-admin-user
Hãy sao chép đoạn mã token xuất hiện trên màn hình để sử dụng cho bước tiếp theo.
5. Truy cập giao diện quản lý
Mở một cửa sổ terminal mới và khởi chạy proxy để chuyển hướng lưu lượng truy cập từ máy cục bộ vào cụm K8s:
kubectl proxy
Bây giờ, bạn có thể truy cập Dashboard thông qua trình duyệt tại địa chỉ:
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
Chọn phương thức đăng nhập bằng Token và dán đoạn mã đã lấy được ở bước 4 vào để bắt đầu quản lý cụm Kubernetes của bạn.