使用 helm 安装 kubernetes-dashboard 失败

Installing kubernetes-dashboard with helm fails

我刚刚创建了一个新的 kubernetes 集群。除了设置集群之外,我唯一做的就是使用 helm init 安装 Tiller 并通过 helm install stable/kubernetes-dashboard.

安装 kubernetes 仪表板

helm install 命令似乎成功并且 helm ls 输出:

NAME                    REVISION        UPDATED                         STATUS          CHART                           APP VERSION     NAMESPACE
exhaling-ladybug        1               Thu Oct 24 16:56:49 2019        DEPLOYED        kubernetes-dashboard-1.10.0     1.10.1          default  

然而,等待几分钟后,部署仍未准备就绪。

运行 kubectl get pods 显示 pod 的状态为 CrashLoopBackOff.

NAME                                    READY   STATUS             RESTARTS   AGE
exhaling-ladybug-kubernetes-dashboard   0/1     CrashLoopBackOff   10         31m

广告连播的描述显示了以下事件:

Events:
  Type     Reason     Age                   From                 Message
  ----     ------     ----                  ----                 -------
  Normal   Scheduled  31m                   default-scheduler    Successfully assigned default/exhaling-ladybug-kubernetes-dashboard to nodes-1
  Normal   Pulling    31m                   kubelet, nodes-1     Pulling image "k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1"
  Normal   Pulled     31m                   kubelet, nodes-1     Successfully pulled image "k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1"
  Normal   Started    30m (x4 over 31m)     kubelet, nodes-1     Started container kubernetes-dashboard
  Normal   Pulled     30m (x4 over 31m)     kubelet, nodes-1     Container image "k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1" already present on machine
  Normal   Created    30m (x5 over 31m)     kubelet, nodes-1     Created container kubernetes-dashboard
  Warning  BackOff    107s (x141 over 31m)  kubelet, nodes-1     Back-off restarting failed container

并且日志显示以下紧急消息

panic: secrets is forbidden: User "system:serviceaccount:default:exhaling-ladybug-kubernetes-dashboard" cannot create resource "secrets" in API group "" in the namespace "kube-system"

我是不是做错了什么?为什么它试图在它不能的地方创建一个秘密?

是否可以在不授予仪表板帐户集群管理员权限的情况下进行设置?

尝试创建 clusterrole

kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard

默认情况下,我将命名空间设置为默认值,但如果是其他名称,您需要替换为您的

kubectl create serviceaccount exhaling-ladybug-kubernetes-dashboard
kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=default:exhaling-ladybug-kubernetes-dashboard

看看这个伙计:

https://akomljen.com/installing-kubernetes-dashboard-per-namespace/

如果需要,您可以创建自己的角色。

根据您发布的错误,令人高兴的是:
1. helm 正在尝试安装仪表板,但默认情况下它会选择您提供的命名空间。

为了解决这个问题:
1.要么你根据你试图安装的命名空间创建角色,默认命名空间应该是:default
2. 只需将 helm chart 安装在 helm chart 所需的正确位置,在您的情况下,您可以这样做:

helm install stable/kubernetes-dashboard --name=kubernetes-dashboard --namespace=kube-system