Cài đặt DashBoard trên hệ thống đầy đủ
Kubernetes Dashboard là công cụ trên nền Web, kết nối đến Kubernetes để thực hiện việc quản lý (giống kubectl), ưu điểm của nó là trực quan dễ sử dụng. Thông tin chính về nó tại dashboard, các phiên bản Dashboard Release
https://xuanthulab.net/cai-dat-va-su-dung-kubernetes-dashboard.html
Cài đặt Kubernetes Dashboard trên Cluster
Để triển khai Kubernetes trước tiên lấy file cấu hình bản phù hợp về tại Dashboard Release, giả sử chọn
v2.0.0-beta6
thì file cấu hình triển khai là:https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta6/aio/deploy/recommended.yaml
Tải file này về lưu thành tên
dashboard-v2-beta6.yaml
curl https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta6/aio/deploy/recommended.yaml > dashboard-v2-beta6.yaml
Mở file đó ra chỉnh các nội dung sau:
Nhiều phần trong quá trình chỉnh sửa như các khái niệm Pod, Service ... bạn có thể vẫn chưa hiểu ở giai đoạn này nhưng hãy cố thực hiện đúng - những khái niệm đó sẽ là nội dung chính của Kubernetes tìm hiều sau!
Thiết lập cho truy cập Dashboard qua địa chỉ IP các Node
Mặc định dịch vụ này không truy cập trực tiếp qua IP máy mà phải qua proxy, mở file
dashboard-v2-beta6.yaml
, tìm đến phần kind: Service
bên trong có tên name: kubernetes-dashboard
sửa thành:--- kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard spec: # Đổi kiểu sang NodePort type: NodePort ports: - port: 443 targetPort: 8443 # Chọn cổng truy cập qua Node là 3100 nodePort: 31000 selector: k8s-app: kubernetes-dashboard ---
Do cấu hình mặc định của Kubernetes Cluster, cổng được mở ra ngoài phải chọn trong khoảng
30000-32767
sau này bạn có thể sửa cấu hình này với tham số chạy Cluster --service-node-portrange
Xóa Secret có tên kubernetes-dashboard-certs
Đoạn cấu hình này để khởi tạo Secret cấu hình xác thực SSL khi truy cập Dashboard, ta xóa nó đi bằng cách comment như sau:
# --- # apiVersion: v1 # kind: Secret # metadata: # labels: # k8s-app: kubernetes-dashboard # name: kubernetes-dashboard-certs # namespace: kubernetes-dashboard # type: Opaque
Sau này sẽ tạo thủ công Secret có tên
kubernetes-dashboard-certs
thủ công từ certificates sinh ra từ OpenSSL.
Triển khai dashboard-v2-beta6.yaml
Bây giờ ta sẽ triển khai các thành phần định nghĩa, cấu hình trong
dashboard-v2-beta6.yaml
, bạn thực hiện lệnh:kubectl apply -f dashboard-v2-beta6.yaml
Tạo kubernetes-dashboard-certs, xác thực SSL
Ta sẽ dùng OpenSSL để sinh certificates tự xác thực SSL (ngoài ra khi triển khai thực tế có thể lấy các certificate do mua hoặc miễn phí từ https://letsencrypt.org/ theo Domain), chạy các lệnh sau:
sudo mkdir certs sudo chmod 777 -R certs openssl req -nodes -newkey rsa:2048 -keyout certs/dashboard.key -out certs/dashboard.csr -subj "/C=/ST=/L=/O=/OU=/CN=kubernetes-dashboard" openssl x509 -req -sha256 -days 365 -in certs/dashboard.csr -signkey certs/dashboard.key -out certs/dashboard.crt sudo chmod -R 777 certs
Trên Windows nếu không có lệnh openssl có thể tạo một Image có cài OpenSSL ví dụ Dockerfile sau:
FROM alpine RUN apk update && \ apk add --no-cache openssl && \ rm -rf /var/cache/apk/* ENTRYPOINT ["openssl"]
Sau khi hoàn thành thì các thông tin certificate lưu ở thư mục
certs
, chạy lệnh sau để tạo Secretkubectl create secret generic kubernetes-dashboard-certs --from-file=certs -n kubernetes-dashboard
Giờ truy cập địa chỉ
https://192.168.10.100:31000
sẽ vào màn hình đăng nhập
Lấy Token đăng nhập Dashboard
Tạo một file có tên
admin-user.yaml
cập nhật nội dung sau: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
Sau đó chạy lệnh:
kubectl apply -f admin-user.yaml
Tiếp theo chạy lệnh sau để lấy Token
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
Copy toàn bộ đoạn Token để đưa vào đăng nhập
Như vậy đã hoàn thành cài đặt, khi truy cập có thể bạn cần dùng trình duyệt khác Chrome vì nó chặn truy cập khi SSL là tự xác thực.
Dashboard với Kubernetes trong Docker Desktop
Đối với Docker Desktop chỉ việc chạy lệnh sau để cài đặt (Tất nhiên nếu muốn có thể thực hiện cách trên) :
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta6/aio/deploy/recommended.yaml
Sau đó chạy proxy
kubectl proxy
Truy cập địa chỉ sau để đăng nhập:
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
Để có Token đăng nhập bạn cũng cần làm theo cách trên, tức triển khai file
admin-user.yaml
, rồi chạy lệnh lấy Token
Tổng kết: đến đây bạn đã có thể dùng công cụ lệnh
kubectl
hoặc dùng Dashboard
trực quan để làm việc với Cluster. Tuy nhiên, trước mắt hãy cố gắng dùng kubectl, sau khi thành thạo rồi hãy dùng Dashboard. Bản thân Dashboard có đủ thông tin từ Node, Pod, Deployment ... Bạn có thể cập nhật, scale hay deploy ứng dụng từ Dashboard.
Không có nhận xét nào :
Đăng nhận xét