- ☸️ Как развернуть веб-интерфейс Kubernetes с помощью MicroK8
- 🧟♀️ Как получить доступ к Kubernetes Dashboard извне
Шаг 1. Создайте учетную запись администратора
Начнем с создания файла манифеста учетной записи.
Я назову служебную учетную запись itsecforu-admin.
$ vim admin-sa.yml
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: itsecforu-admin
namespace: kube-system
Где jmutai-admin – имя создаваемой itsecforu-admin.
После создания файла примените манифест для создания объекта в вашем кластере kubernetes.
$ kubectl apply -f admin-sa.yml
serviceaccount/jmutai-admin created
clusterrolebinding.rbac.authorization.k8s.io/itsecforu-admin created
Шаг 2. Создание Cluster Role Binding
Далее следует назначить служебной учетной записи созданную привязку роли кластера cluster-admin.
$ vim admin-rbac.yml
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: itsecforu-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: itsecforu-admin
namespace: kube-system
$ kubectl apply -f admin-rbac.yml
Шаг 3: Получите токен администратора
Вы можете вывести сгенерированный токен для учетной записи службы с помощью команды kubectl.
Установите переменную для хранения имени учетной записи службы.
SA_NAME="itsecforu-admin"
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ${SA_NAME} | awk '{print $1}')
Вывод:
Name: itsecforu-admin-token-mm9jd
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name: itsecforu-admin
kubernetes.io/service-account.uid: 80fade4b-4270-11ea-9fe4-005056ba45bd
Type: kubernetes.io/service-account-token
Data
====
token: eyJhbGciOiJSUzI1NiIsImtpZCI9IiJ9.eyJpc7MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUxOiJqa211dGFpLWFkbWluLXRva2VuLW1tOWpkIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImprbXV0YWktYWRtaW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI4MGZhZGU0Yi00MjcwLTExZWEtOWZlNC0wMDUwNTZiYTQ1YmQiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06amttdXRhaS1hZG1pbiJ9.uMC2ydeHF4jVA5tnKFbBeHRvc4NWqL920jigk2FDeduUdBuFhsNyDcscmL-pBbWHG5KKwOAEuAAeyNaknaHsDadNnbLpp4AMZTTdr22FEp-_v7MfIEQm3QWmq-c0ykpdrzUzGmk5Q3JIpfqeorDI0lZd52-DF4IVMw3VtTNp6ZMHdieQUNRnCEyfs98raCTRAotiXZQaMvmRW5s9peu5hfxM71jufg-Qzmflr9nO-dY2dOHh1WZcKhJqfNfB73GYX2TQlUlurV4Oy0-2CpUUpJ1HAjcSHzKGuSrMUAMAhRwhbZZXhwvbQ6Ei_9Vv2PkD8_Pw9c-k9x-bblFSAqyFhA
ca.crt: 1025 bytes
namespace: 11 bytes
Скопируйте содержимое токена.
Шаг 4: Доступ к дашборду Kubernetes
После создания токена вы можете получить по нему доступ к своей панели администрирования Kubernetes.
Если вы используете NodePort для доступа к службе дашборда, вы можете узнать выделенный порт, введя команду.
$ kubectl get services -n <namespace> | grep dashboard
kubernetes-dashboard NodePort 10.111.76.69 <none> 443:32254/TCP 414d
Команда kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ${SA_NAME} | awk ‘{print $1}’) не работает.
Добавил скриншот в подтверждение корректной работы команды