Thiết lập môi trường phát triển Kubernetes trên Windows với Docker Desktop

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.

Thẻ: Kubernetes docker-desktop Windows DevOps Kubectl

Đăng vào ngày 24 tháng 7 lúc 15:09