Невозможно указать ресурсы "configmaps" в группе API при развертывании настройки Weaviate k8s на GCP
При запуске (на GCP):
$ helm upgrade \
--values ./values.yaml \
--install \
--namespace "weaviate" \
"weaviate" \
weaviate.tgz
Он возвращается;
UPGRADE FAILED
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list resource "configmaps" in API group "" in the namespace "ku
be-system"
Error: UPGRADE FAILED: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list resource "configmaps" in API group "" in t
he namespace "kube-system"
ОБНОВЛЕНИЕ: на основе решения
$ vim rbac-config.yaml
Добавьте в файл:
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: tiller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
Бегать:
$ kubectl create -f rbac-config.yaml
$ helm init --service-account tiller --upgrade
Примечание: на основе Helm v2.
1 ответ
tl;dr: Настройте Helm с соответствующими настройками авторизации для вашего кластера, см. https://v2.helm.sh/docs/using_helm/
Длинный ответ
Ваш опыт не относится к диаграмме Weaviate Helm, скорее, похоже, что Helm не настроен в соответствии с настройками авторизации кластера. Другие команды Helm должны завершиться с той же или подобной ошибкой.
Следующая ошибка
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list resource "configmaps" in API group "" in the namespace "ku
be-system"
означает, что учетная запись службы по умолчанию в kube-system
пространство имен не имеет разрешений. Я предполагаю, что вы установили Helm/Tiller вkube-system
пространство имен, так как это значение по умолчанию, если другие аргументы не указаны в helm init
. Поскольку вы не создали конкретную учетную запись службы для Tiller, чтобы использовать ее, по умолчанию используетсяdefault
сервисный аккаунт.
Поскольку вы упоминаете, что используете GCP, я предполагаю, что это означает, что вы используете GKE. В GKE по умолчанию включена авторизация RBAC. При настройке RBAC по умолчанию никто не имеет никаких прав, все права должны быть предоставлены явно.
В документации helm перечислено несколько вариантов того, как заставить Helm/Tiller работать в настройках с поддержкой RBAC. Если единственная цель кластера - запуск Weaviate, вы можете выбрать самый простой вариант: Учетная запись службы с ролью администратора кластера. Описанный здесь процесс, по сути, создает специальную учетную запись службы для Tiller и добавляет необходимыеClusterRoleBinding
к существующим cluster-admin
ClusterRole
. Обратите внимание, что это фактически делает Helm/Tiller администратором всего кластера.
Если вы запускаете мультитенантный кластер и / или хотите ограничить разрешения Tillers определенным пространством имен, вам необходимо выбрать одну из альтернатив.