Для доступа к DASHBOARD UI это то, что я сделал, и он работает на кластере kuebernetes со следующими спецификациями:
OS : CentOS 7
Версия компонентов Kubernetes(но у меня тоже работало с v1.10.x):
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:17:28Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:08:19Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Шаги
- Установить пользовательский интерфейс dahsboard
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
Установите kubectl на свой локальный компьютер: этот метод зависит от того, работаете ли вы с Windows, Linux или OS X, но довольно прост
Скопируйте каталог .kube
с вашего главного узла на локальный компьютер
Создайте служебную учетную запись с именем <name>
(вы можете поставить все, что захотите, но из моего опыта лучше, если вы используете тот жеимя учетной записи, которое вы используете для входа на свой компьютер, куда вы импортируете каталог .kube
) в пространстве имен kube-system
$ vim my_user.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: <your account user_name>
namespace: kube-system
kubectl create -f my_user.yaml
Создание ассоциации роли кластера
$ vim cluster-admin-role-association.yml
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: <your account user_name>
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: <your account user_name>
namespace: kube-system
kubectl create -f cluster-admin-role-association.yml
Получите свой токен для входа в систему
$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep <your account user_name> | awk '{print $1}')
`Name: <your account user_name>-token-xxxxx
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name=<your account user_name>
kubernetes.io/service-account.uid=xxxxxxxxxxxxxxxxxxxxxx
Type: kubernetes.io/service-account-token
Data
====
namespace: 11 bytes
token:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (your token)`
Теперь вы можете выполнить на своем локальном компьютере
kubectl proxy
, получить доступ к DashboardUI по следующему URL и войти в систему с помощью токена:
http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
Вы можете изменить пространства именнапример, чтобы влиять на разных пользователей в разных проектах и быть более точным с разрешениями
Для доступа к SERVICE обычно, по крайней мере, при моем развертывании, вам необходимо знать, в каком из вашихузлы, на которых работает служба (вы можете получить ее, добавив -o wide
к вашему kubectl get resource
запросу), и вы сможете получить к ней доступ с помощью http(s)://<node_ip>:<service_port>/<any url complement if there is one>
Возможно, существует лучший способ получить доступ к службе(имена DNS), но я все еще учусь, так что на данный момент, как я это делаю
Надеюсь, что это помогает
Приветствия