- Đăng vào
K8s cluster trên Ubuntu: Cài đặt Kubernetes dashboard
Ở bài viết trước, mình đã cài đặt thành công 1 Kubernetes cluster: 01 master node và 02 worker node trên 3 con Ubuntu server. Tiếp theo đây, mình sẽ cài dashboard để quản lý và giám sát cluster hiện tại.
Thông tin về Kubernetes dashboard có thể xem tại đây. Trong bài viết này mình sử dụng phiên bản v2.7.0, dùng lệnh dưới để deploy dashboard:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
Nếu chạy thành công thì terminal sẽ hiện ra thông tinh như bên dưới
anh@k8s-master:~/$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created
Kubernetes là một web app dùng để quản lý giám sát cluster, để đăng nhập vào được giao diện quản lý thì mình sẽ sử dụng Nodeport service để cho phép truy cập vào web app tại địa chỉ: https://<k8s-master-ip>:<nodeport>
. Đồng thời tạo ServiceAccount tên admin-user để cấp quyền quản lý Dashboard:
kubernetes-dashboard-service-np.yaml
---
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
Chúng ta deploy NodePort:
kubectl apply -f kubernetes-dashboard-service-np.yaml
Tiếp theo, chúng ta tạo token cho admin-user
kubectl -n kubernetes-dashboard create token admin-user
Kết quả trả về trên terminal sẽ có dạng:
anh@k8s-master:~/homelab-k8s/k8s-dashboard$ kubectl apply -f kubernetes-dashboard-service-np.yaml
serviceaccount/admin-user created
clusterrolebinding.rbac.authorization.k8s.io/admin-user created
service/kubernetes-dashboard-service-np created
anh@k8s-master:~/homelab-k8s/k8s-dashboard$ kubectl -n kubernetes-dashboard create token admin-user
eyJhbGciOiJSUzI1NiIsImtpZCI6InVKM2pJaUt0SGxKM2FSV2w4Sk04R1Q4cldMSlBta0pBcklUREt3U1FiQWMifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNjc3MjEyNTgzLCJpYXQiOjE2NzcyMDg5ODMsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm8ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhZG1pbi11c2VyIiwidWlkIjoiMDkyMzhmODQtNDc5Zi00ZjlmLWI4YzQtMWE1NGIzZGYwMzE3In19LCJuYmYiOjE2NzcyMDg5ODMsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbi11c2VyIn0.JOdT8M7xlcH6o7RsEsQnPQauahR7k5R2dm6PVeBJ01U_CQpWX-fZV00MLN5sDKn5JAAdGGQY0BeRiBgnV90kiq3djK4jczq3Y_3eoBlGP2i4owz6f1b0FZHysjINmXDkskFRupWdnDJzDxtv0t9xTELFknilPEUZUgtSz7GIBZ-lp94kxF8ByE1JF8UfXbYMqjODwRAtmepemYzqrb8LmiMnaW_HlyfrK2i3jFqEjFXQRsRAxbcG_BcwALw2L91DNst-ek3mG-imsy73kjhtt702PBghRD2YX5ZuX7--LqgYOoQoGOtBuLxzc65L7BWJ2hUBZ2jw5T81SA4FB7IwEA
Trong trường hợp của mình, IP của k8s-master là: 192.168.1.10 và NodePort là 30002, nên truy cập vào dashboard theo đường dẫn: https://192.168.1.10:30002
Paste token ở trên vào thì cúng ta sẽ vào được giao diện quản lý như sau:
Trân trọng, nvtienanh