Установка dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.1/aio/deploy/recommended.yamlПроверка
kubectl get all -n kubernetes-dashboard
Dashboard в minikube установлен по-умолчанию.
Подключение к dashboard
kubectl edit service/kubernetes-dashboard -n kubernetes-dashboardУзнать по какому порту подключаться можно командой
kubectl get service/kubernetes-dashboard -n kubernetes-dashboardОткрыть web-страницу можно будет по адресу https://<node-ip>:<port>
kubectl proxyЗатем подключиться к dashboard можно по ссылке http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
Dashboard не работает через http, если обращение осуществляется не с localhost.
Создание пользователя
Dashboard использует встроенную систему RBAC Kubernetes, поэтому требуется создать пользователя и дать ему права на Dashboard.
cat <<EOF | kubectl apply -f - apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard EOFОпределение роли созданного пользователя
cat <<EOF | kubectl apply -f - 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 EOF
Вход в dashboard
Войти в dashboard можно или с помощью токена или с используя файл с конфигом.
Вход с помощью токена
Этот токен доступа существует в секретном хранилище созданного пользователя. Он автоматически генерируется при создании пользователя, и нужно получить его для входа в dashboard.
kubectl -n kubernetes-dashboard create token admin-userПо-умолчанию срок службы такого токена небольшой. Можно задать срок службы при создании, например
kubectl -n kubernetes-dashboard create token admin-user --duration=24h
Вход с помощью kubeconfig
kubectl config view
kubectl apply -f - <<EOF apiVersion: v1 kind: Secret metadata: namespace: kubernetes-dashboard name: admin-user annotations: kubernetes.io/service-account.name: admin-user type: kubernetes.io/service-account-token EOFЗатем выполнить
kubectl get secrets/admin-user -n kubernetes-dashboard -o jsonиз вывода взять без кавычек значение поля
"data": { "ca.crt":и вставить это значение в файл kuberconfig в поле certificate-authority-data вместо DATA+OMITTED Выполнить
kubectl get secret/admin-user -o jsonpath='{.data.token}' -n kubernetes-dashboard | base64 --decodeв файле kuberconfig добавить поле token в конце и вставить в него полученное значение
users: - name: kubernetes-adminна
users: - name: admin-userИ заменить
- context: cluster: kubernetes user: kubernetes-adminна
- context: cluster: kubernetes user: admin-user
apiVersion: v1 clusters: - cluster: certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvakNDQWVhZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJeU1EY3hPVEEyTlRNeE1Wb1hEVE15TURjeE5qQTJOVE14TVZvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTG1CCkZlUHlCd1hlM3NoVFVpVWhBRE5IUSs2Rk5GWk80OEw0QTFGRStRTm5Ud2ZBclorM29Qc2ZOd3NCVEVsekRscTcKVWdReGFEZ2RoSmJxQTkrUi9ERFhZdURhSG9nMWVGaGhlcVVpMy9aUFptcmwwNUR4SHcvL1dSMit2VzNsdVdHcApkc1k0OForWDkyaUVHaWRpbHU5cGpRVlRkdmNBOWNXQ1NGbld5cHNubURxWmsvMjVnbU5IZGN5ditHUVpOaFI5Cmxna2tSalFUTDdnWmVscEt2emJYRG9lcEFSVEtpSWtkQXpubnRaekU3TzZ3Ymx0ZW5PS1ZkYnVyeUxIVjdObHkKaEdscTdJWmJjT2dlTnltVEErVm5XaEJWM1ZMYnYwYXJlSEM2bVpQS00vUWFOMzIwMWtKQkdKdnpIdmZlaDU5Ugp5dWM0cEcrVDNSd3A3aUlDYTVVQ0F3RUFBYU5aTUZjd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZCSVppekxzOFZUTFZtNWJyM1BBeEg0TjArZ3lNQlVHQTFVZEVRUU8KTUF5Q0NtdDFZbVZ5Ym1WMFpYTXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSUdKb2FjQU95bjJpbWw5eU9ZZgpGM0VIVXpTRGZIb0dwbEtNUnFabUp2b2RFalVObUhHUEZEMDdnY3lHVnhweHV3NHQ0TGFZN1JydVpFelhDRDM0ClBjTk5raFBEU3VIaVdtdDdjZ0Y5NjNSVWhvTHN3dEZrRHRNLzAvaXNPTzlSdlV3VVhWVUNPdi8wMG9KajdJd2EKWTQ3YzcwUXMyVnU3TUZPVlYyZFhzRUdNYS9XK1dyUUpkQ2FQTCthUXN6N0Q3cFdLQUQxYWdkZm4xdUg1L3E0WQpLQXh4NytYOFJ4Nk5pU1IxWEFzMGEwQTNjZmJZbGx1Zk9pNkFHc2pRdWZaTHdtQjBGYmZJb1VONXZlcGNqTXFHCkdBTTduc0ErREU4dHNnZzJPYkVyVDFXaGJHQ01Gb25GS1lib0JXbHJNWEZJVVNUYWE0c0pIZ0JnMXRIYSs1djkKZE9vPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== server: https://192.168.10.15:6443 name: kubernetes contexts: - context: cluster: kubernetes user: admin-user name: kubernetes-admin@kubernetes current-context: kubernetes-admin@kubernetes kind: Config preferences: {} users: - name: admin-user user: client-certificate-data: REDACTED client-key-data: REDACTED token: eyJhbGciOiJSUzI1NiIsImtpZCI6Ildpc2ZfNkJZblVVX0FHbHBYRUVCRnRTUVJVNGRkZkM5ZUNxQ3hMckJRN3cifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJhZTkxNmRhMi04NTFmLTQyMzctYmMxYi1mOGIwZTM4NmYwNTAiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.S_K8zG_2_fN7svoXVtHyOEB1wS_4k2t0hWSf3nlx6pZPJKe1FYzBKp4TyeUaGEnU54iU5mVSzHRnrdhQPKjkvg4cHBJrPZ7irWYndulo4it9j3txLXAJ2jtinh_GzOo5Tj4NtjuUQss7ge4bIOK4-U2MQZI8udSBNz1OF8xt7bPVaDOOUoa5RZx5ajkBV64u9eULowGHkCPB1KVFe4XJ6rkhIaWNTVtcDyqgxBOSxiMKRFA2NzGDuLXpn06VByED2IbMa9dKEcBh4u6uqW4yIDSsIxy1tlMMjYDFl_w1oejAjCPnBjcmbR9E-mJtxQgiAUw_7Ak2s293nWDHlTlJYA
Теперь можно войти в дашборд указав файл конфига.
Lens
Lens - это IDE для управления кластерами kubernetes. Lens включает в себя функции dashboard и больше других возможностей. Более удобная, по сравнению с dashboard и кроме того, к ней можно подключить сразу большое количество кластеров.
/etc/kubernetes/admin.confВ lens зайти в Categories - Clusters, в правом нижнем углу нажать на плюс, выбрать вариант указания конфигурации: файл, каталог с файлами или вставить текст, скопированный из admin.conf.