- Đăng vào
Microsoft Hyper-V Server: Cài đặt Kubernetes Dashboard
Ở các bài viết trước, mình đã thiết lập xong Kubernetes cluster trên Microsoft Hyper-V Server. Bước tiếp theo mình sẽ tiến hành cài đặt công cụ Dashboard để quản lý, giám sát cluster.
Windows Admin Center
Cài đặt Kubernetes Dashboard
Đầu tiên, vào Windows Admin Center mở PowerShell của server. Deploy Dashboard bằng việc chạy lệnh sau:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
Theo mặc định thì dashboard service là ClusterIP nên không thể truy cập từ lớp mạng bên ngoài. Trên hình mình minh họa POD khung đỏ tượng trưng có Pod Dashboard.
Vì vậy, mình sử dụng thêm Service NodePort sử dụng port 30002 để cho lớp mạng bên ngoài cluster có thể try cập được dashboard.
Tạo NodePort service
kubectl apply -f https://raw.githubusercontent.com/nvtienanh/hyperv-k8s/main/k8s/kubernetes-dashboard/kubernetes-dashboard-service-np.yaml
Nội dung file kubernetes-dashboard-service-np.yaml
để tạo service Nodeport
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
---
kind: Service
apiVersion: v1
metadata:
namespace: kubernetes-dashboard
name: kubernetes-dashboard-service-np
labels:
k8s-app: kubernetes-dashboard
spec:
type: NodePort
ports:
- port: 8443
nodePort: 30002
targetPort: 8443
protocol: TCP
selector:
k8s-app: kubernetes-dashboard
Sau khi deploy thành công NodePort service, mọi client trong lớp mạng 10.10.0.1/24 đều có thể truy cập vào dashboard thông qua đường dẫn https://nodeIP:30002 do ở đây chúng ta có 3 node (master và 2 worker node) nên chúng ta có thể truy cập vào dashboard thông qua 1 trong 3 đường dẫn: https://10.10.0.10:30002 hoặc https://10.10.0.11:30002 hoặc https://10.10.0.12:30002
Lưu ý rằng Hyper-V server có Physical IP 192.168.1.5 đồng thời cũng có IP trong KubeNatNet với IP là 10.10.0.1
Trên Microsoft Hyper-V Server là môi trường command, không có giao diện cũng như trình duyệt để chúng ta truy cập vào, vì vậy 1 lần nữa, chúng ta phải cho phép lớp mạng khác truy cập vào KubeNatNet trong Hyper-V Server chúng ta sử dụng NetNatStaticMapping
NetNatStaticMapping
Add-NetNatStaticMapping -ExternalIPAddress "0.0.0.0/24" -ExternalPort 30002 -Protocol TCP -InternalIPAddress "10.10.0.10" -InternalPort 30002 -NatName KubeNatNet
Bằng việc thực hiện điều ở trên, 1 laptop có IP 192.168.1.10 chẳng hạn có thể truy câp vào Kubernetes Dashboard thông qua địa chỉ: https://192.168.1.5:30002
Lấy mã token để đăng nhập vào dashboard
$account = ((kubectl -n kubernetes-dashboard get secret -o json | ConvertFrom-Json).items.metadata | where { $_.annotations.'kubernetes.io/service-account.name' -eq "admin-user" }).name
kubectl -n kubernetes-dashboard describe secret $account
Sau khi thực thi thành công token sẽ được tạo ra dùng cho đăng nhập vào Dashboard
Sử dụng dashboard
Link truy cập: https://IP_Hyper-V_Server:30002
Nhập token được tạo ở bước trước là đã đăng nhập vào được Dashboard rồi
Chi tiết có thể xem thêm video dưới đây