gpt4 book ai didi

kubernetes - 在 GCP 上部署 Weaviate k8s 设置时,无法在 API 组中列出资源 "configmaps"

转载 作者:行者123 更新时间:2023-12-02 12:02:55 25 4
gpt4 key购买 nike

运行时(在 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。

最佳答案

tl;dr:为您的集群设置适当的授权设置 Helm,参见 https://v2.helm.sh/docs/using_helm/#role-based-access-control

长答案

您的体验并非特定于 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 中的默认服务帐号命名空间缺少权限。我假设您已经在 kube-system 中安装了 Helm/Tiller命名空间,因为如果在 helm init 上没有指定其他参数,这是默认值.由于您尚未为 Tiller 创建特定的服务帐户以使用它,因此默认为 default服务帐户。

由于您提到您在 GCP 上运行,我认为这意味着您正在使用 GKE。 GKE 默认有 RBAC Authorization启用。在 RBAC 设置中,默认情况下没有人拥有任何权限,所有权限都需要明确授予。

helm 文档列出了几个关于如何制作 Helm/Tiller work in an RBAC-enabled setting 的选项。 .如果集群的唯一目的是运行 Weaviate,您可以选择最简单的选项: Service Account with cluster-admin role .那里描述的过程实质上为 Tiller 创建了一个专用服务帐户,并添加了所需的 ClusterRoleBinding到现有 cluster-admin ClusterRole .请注意,这有效地使 Helm/Tiller 成为整个集群的管理员。

如果您正在运行 Multi-Tenancy 集群和/或希望将 Tillers 权限限制为特定命名空间,则需要选择其中一种替代方案。

关于kubernetes - 在 GCP 上部署 Weaviate k8s 设置时,无法在 API 组中列出资源 "configmaps",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58501558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com