Желаемый результат. Я хочу создать CSV-файл с идентификаторами пользователей и паролями и получить доступ к панели управления Kubernetes как полноправный администратор, желательно из любого места с помощью браузера. Я только изучаю кубернеты и хочу поэкспериментировать с управлением кластером, развертыванием и т. Д. Это только для обучения и не является производственной установкой. Я использую Kubernetes версии 1.9.2 и создал кластер из 3 машин (мастер и 2 рабочих)
Предыстория / Что я сделал на данный момент:
Я прочитал README Dashboard и создал привязку admin-user и admin-role-binding к файлам, показанным ниже. Затем я могу использовать команду kubectl describe secret
, чтобы получить токен администратора. Я запускаю kubectl proxy
на мастере кластера и аутентифицируюсь на панели мониторинга с этим токеном, используя браузер, запущенный на мастере кластера. Все это работает.
admin-user.yaml:
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kube-system
admin-role-binding.yaml:
apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kube-system
Я могу войти в панель управления как администратор, ЕСЛИ:
- Я запускаю прокси kubectl
- Я получаю доступ к панели управления через браузер, в котором я выполнил команду (1)
- Я использую параметр «токен» для входа в систему и вставляю токен администратора, который я получаю с помощью команды
kubectl describe secret
.
Что бы я хотел сделать:
- Создайте CSV-файл с идентификаторами пользователя / паролями
- Войдите как администратор с идентификатором пользователя / паролем
- Уметь входить в систему из любого места
Для этого я создал файл CSV, например /home/chris/myusers.txt
:
mypasswd,admin,42
Я не знал, какое значение использовать для id, поэтому просто набрал 42.
Затем я отредактировал файл: /etc/kubernetes/manifests/kube-apiserver.yaml
и добавил эту строку: --basic-auth-file=/home/chris/myusers.txt
а затем перезапустите kubelet: sudo systemctl restart kubelet
Однако, когда я это сделал, мой кластер перестал работать, и я не смог получить доступ к панели инструментов, поэтому я вернулся к тому месту, где до сих пор использую токен администратора.
Мои вопросы:
- Можно ли здесь делать то, что я пытаюсь сделать?
- Какие значения идентификаторов использовать в пользовательском CSV-файле? Какие группы я бы указал?
- Какие еще изменения мне нужно внести, чтобы все это работало? Если я изменю манифест apiserver для использования файла с идентификаторами пользователя / паролями, испортит ли это остальную конфигурацию моего кластера?