Вопрос или проблема
Как войти в систему как администратор кластера супервизора Tanzu?
Я могу войти в систему как администратор vSphere в кластере супервизора (10.x.y.z), как показано ниже:
$ kubectl vsphere login --server=10.x.y.z --insecure-skip-tls-verify
Имя пользователя: [email protected]
Пароль:
Успешный вход в систему.
$ kubectl config set-context 10.x.y.z
Контекст "10.x.y.z" изменен.
$ kubectl get wcpclusters -A
NAMESPACE NAME AGE
test1 test1 20d
test1 test2 20d
но у администратора vSphere нет прав администрирования кластера Kubernetes в супервизоре, он не может выполнять многие действия, например, выводить список секретов кластера супервизора:
$ kubectl get secrets
Ошибка от сервера (Запрещено): secrets запрещено: Пользователь "sso:[email protected]" не может вывести список ресурсов "secrets" в группе API "" в пространстве имен "default"
Я много искал, но нашел только инструкции по входу в систему как администратор кластера Kubernetes гостевых кластеров. В моем случае я хочу получить эти права непосредственно в кластере супервизора.
Спасибо
Кластеры супервизоров Tanzu укреплены, чтобы предотвратить случайное разрушение чего-либо обычными администраторами. Я полагаю, VMware планирует использовать кластер супервизора в основном для запуска их базового инфраструктурного ПО. Похоже, в будущем любое OVA-устройство станет vSphere Pods, и их облачная инфраструктура станет проще в развертывании и управлении. Хотя мы можем создавать vSphere Pods в кластере супервизора, некоторые консультанты VMware продолжают говорить нам, что они не очень подходят для пользовательских приложений.
В любом случае, опытные администраторы найдут полезным заглянуть под капот, чтобы устранить проблемы или просто понять, как все реализовано.
Чтобы получить полный доступ cluster-admin к Tanzu Supervisor, выполните следующие шаги:
1 Включите доступ по SSH к виртуальной машине vCenter
Доступ к интерфейсу управления vCenter через браузер
https://[vCenter IP]:5480
В меню “Доступ” перейдите, чтобы включить вход по SSH.
2 Доступ к vCenter через SSH
Это необходимо сделать с использованием пароля root
.
ssh root@[vCenter IP]
В оболочке выполните следующий скрипт:
/usr/lib/vmware-wcp/decryptK8Pwd.py
В терминале будут показаны IP и пароль root для вашей плоскости управления супервизором.
3 Доступ к плоскости управления супервизора через SSH
ssh root@[SUPV_CONTROL_PLANE_IP]
В терминале внутри плоскости управления супервизора kubectl
будет иметь полный доступ cluster-admin, так что теперь вы можете делать что угодно с кластером. Вы даже можете создать ClusterRoleBindings, который даст вашему [email protected] доступ cluster-admin.
ПРЕДУПРЕЖДЕНИЕ
Будьте осторожны, вмешиваясь на этом уровне. VMware явно не хочет, чтобы обычные администраторы здесь лазили, особенно если вы не знаете, что делаете. Архитектура Tanzu довольно сложна, она использует Cluster API и другие проприетарные инструменты для автоматизации большей части своего Kubernetes движка.
Тем не менее, это может быть очень полезно, чтобы видеть, что происходит под капотом, особенно для устранения любых загадочных проблем, которые могут быть переданы в официальную службу поддержки клиентов.
.
Ответ или решение
Для профессионала в области информационных технологий использование инфраструктуры, такой как vSphere с Tanzu, требует детального понимания работы каждой ее компоненты. Вопрос, связанный с получением прав администратора кластера Kubernetes в супервайзер-кластере (supervisor cluster) Tanzu, показывает, что пользователь стремится глубже разобраться в инфраструктуре VMware, чтобы иметь возможность управлять кластером с более высокой степенью привилегий. Рассмотрим данную задачу подробно.
Теория
VMware vSphere с Tanzu предоставляет две основные возможности: внедрение контейнеризированных приложений и управление ими через платформу Kubernetes. В рамках этого процесса создается несколько различных кластеров, включая супервайзер-кластер, который является центральным в управлении инфраструктурой Kubernetes на базе vSphere. Супервайзер-кластер это Kubernetes-кластер, который предоставляет API-уровень, через который интегрируются vSphere и Kubernetes.
Однако в целях безопасности и предотвращения нарушений в работе всей экосистемы, права доступа к супервайзер-кластеру ограничены, и обычный vSphere администратор не обладает всеми правами Kubernetes Cluster Admin в супервайзер-кластере. Это препятствие является частью стратегии безопасности от VMware, направленной на предотвращение случайных или неправильных действий, которые могли бы нарушить функциональность всей инфраструктуры.
Пример
Как было указано в вашем вопросе, при попытке доступа к секретам супервайзер-кластера появляются ошибки доступа:
$ kubectl get secrets
Error from server (Forbidden): secrets is forbidden: User "sso:<email_protected>" cannot list resource "secrets" in API group "" in the namespace "default"
Это типичное ограничение прав, накладываемое на пользователя в супервайзер-кластере. Но возможность стать Kubernetes Cluster Admin на этом уровне существует.
Применение
Следуя пошаговому руководству, вы сможете получить права администратора кластера Kubernetes в супервайзер-кластере Tanzu:
-
Включение SSH-доступа на vCenter VM
Доступ к интерфейсу управления vCenter может осуществляться через веб-браузер. У вас есть возможность включить SSH-доступ в меню "Access", что позволит вам подключиться к vCenter через SSH, используя root-пароль.
ssh root@[vCenter IP]
-
Получение учетных данных от супервайзер-кластера
После подключения к vCenter через SSH, выполните скрипт /usr/lib/vmware-wcp/decryptK8Pwd.py, который предоставит вам IP и root-пароль супервайзер-контрольного плана.
-
Доступ к супервайзер-контрольному плану
Используйте полученные данные для подключения к супервайзер-контрольному плану. Там вы сможете использовать kubectl с полными привилегиями Cluster Admin.
ssh root@[SUPV_CONTROL_PLANE_IP]
Здесь вы можете создать ClusterRoleBindings, чтобы предоставить пользователю sso:[email_protected] привилегии Cluster Admin. Это достигается через создание необходимых связей ролей и прав доступа в рамках Kubernetes.
Предупреждение
Работа с супервайзер-кластером на таком уровне требует серьёзной ответственности и понимания рисков. Вмешательство в архитектуру без полного осознания того, что вы делаете, может привести к непредсказуемым последствиям. Танзу архитектура является сверхсложной, интегрируя в себя множество инструментов для автоматизации Kubernetes-движка и требует от администратора высокой квалификации и компетентности.
Теперь, вооружившись этой информацией, можно безопасно осуществить доступ и выполнить необходимые действия для управления вашей инфраструктурой Tanzu. Обладая полными привилегиями, вы сможете более детально исследовать происходящие процессы, что особенно важно при решении сложных и необъяснимых проблем, которые могут потребовать обращения в официальную службу поддержки VMware.