Установка Kubernetes-Dashboard
Продукты: МоиОтчеты Корпоративный Сервер
Kubernetes-Dashboard это WEB-интерфейс для управления кластером. Он позволяет с помощью WEB-браузера управлять Kubernetes. Dashboard не является необходимым компонентом для работы сервера отчётов, однако он позволяет упростить настройку и конфигурирование сервера, а также мониторить состояние узлов и контейнеров.
Установка Dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc7/aio/deploy/recommended.yaml
Конфигурирование Dashboard
При конфигурации Dashboard используется переменная SERVER_DOMAIN_NAME .
Обратите внимание,
нижеприведённая конфигурация использует Dashboard на том же самом IP адресе, что и сервер отчётов. Для захода на страницу Dashboard используется правило, определяющее путь к Dashboard.
export SERVER_DOMAIN_NAME="my.server-server.ru"
cat <<EOF | kubectl apply -f -
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: fastreport.cloud-dashboard
namespace: kubernetes-dashboard
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: "/\$2"
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite ^(/dashboard)\$ \$1/ redirect;
spec:
tls:
- hosts:
- $SERVER_DOMAIN_NAME
secretName: fr-corporate-tls
rules:
- host: $SERVER_DOMAIN_NAME
http:
paths:
- path: /dashboard(/|$)(.*)
backend:
serviceName: kubernetes-dashboard
servicePort: 443
EOF
Проверить созданную конфигурацию nginx сервера можно с помощью следующих команд, используя вместо nginx-ingress-controller-6674ff5868-t47xk
имя созданного nginx контейнера:
kubectl exec -it nginx-ingress-controller-6674ff5868-t47xk -n nginx -- ls /etc/nginx/
kubectl exec -it nginx-ingress-controller-6674ff5868-t47xk -n nginx -- cat /etc/nginx/nginx.conf
Далее необходимо получить token, который будет использоваться для административного доступа к Dashboard. Создание административной учётной записи:
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:
name: dashboard-admin-user
namespace: kube-system
EOF
Назначение прав доступа административной учётной записи:
cat <<EOF | kubectl apply -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: dashboard-admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: dashboard-admin-user
namespace: kube-system
EOF
Создание токена:
kubectl -n kubernetes-dashboard create token dashboard-admin-user -n kube-system
Распаковка и вывод на экран токена, использующегося для авторизации на Dashboard:
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep dashboard-admin-user | awk '{print $1}')
Сохраните токен для последующего использования в недоступном для посторонних месте и используйте его для авторизации в Dashboard.
Пример URL для доступа к dashboard: https://my.server-server.ru/dashboard/