如何登录microk8s Kubernetes Dashboard?

How to log in to the microk8s Kubernetes Dashboard?

我在 microk8s 中启用了仪表板:

microk8s.enable dns dashboard

我找到了它的 IP 地址:

microk8s.kubectl get all --all-namespaces
    ...
kube-system   service/kubernetes-dashboard ClusterIP 10.152.183.212 <none> 443/TCP 24h
    ...

我尝试使用 URL https://10.152.183.212 在我的浏览器中显示它。我的浏览器给出错误 "Authentication failed. Please try again.":

我也收到了类似的错误,"Not enough data to create auth info structure."

首先,请确保您的浏览器接受仪表板 URL 的 cookie,在本例中为 https://10.152.183.212

由于 microk8s 的松散安全性,您可以跳过登录并简单地 select SKIP 按钮。

如果您想真正登录,请从文件 /snap/microk8s/current/known_token.csv:

中获取用户 admin 的不记名令牌
sed -n 's/,admin,admin.*//p' /snap/microk8s/current/known_token.csv
rP8Yredactedk5EU

Return 到您的浏览器,select 令牌,然后输入上面找到的不记名令牌。 Select 登录 并输入不记名令牌:

为了扩展@John 的回答,有时您可能会被询问 HTTP 基本身份验证提示,您也可以在以下位置找到这些凭据:

#/var/snap/microk8s/current/credentials/basic_auth.csv

~/:$ sudo cat /var/snap/microk8s/current/credentials/basic_auth.csv

<password>,admin,admin,"system:masters"

第一个值 (password) 是实际密码,用户将是 admin

稍后,系统可能会要求您使用秘密令牌登录。可以这样取:

首先,让我们通过获取秘密列表来确定代币名称(它是随机的):

~/:$ kubectl -n kube-system get secret

NAME                               TYPE                                  DATA   AGE
coredns-token-k64mx                kubernetes.io/service-account-token   3      86s
.
.
kubernetes-dashboard-token-wmxh6   kubernetes.io/service-account-token   3      80s

最后一个token(kubernetes-dashboard-token-wmxh6)就是我们要找的那个,现在让我们获取实际值:

~/:$ kubectl -n kube-system describe secret kubernetes-dashboard-token-wmxh6 

Name:         kubernetes-dashboard-token-wmxh6
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: kubernetes-dashboard
              kubernetes.io/service-account.uid: 538fbe6d-ac1e-40e8-91e9-ec0cf4265545

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1115 bytes
namespace:  11 bytes
token:      <token-value>

令牌字段的值 (<token-value>) 将是登录 K8s 仪表板的令牌。

从那里开始,你应该没问题。

kubectl describe service/kubernetes-dashboard -n kube-system

将return一个端点。对我来说,它看起来像这样:10.1.43.61:8443 然后您可以在 https://10.1.43.61:8443 打开浏览器,您可能必须绕过安全警告。

现在您需要进行身份验证才能访问仪表板。

token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
microk8s kubectl -n kube-system describe secret $token

(此命令来自docs) 将 return 身份验证令牌。将令牌粘贴到登录屏幕,现在您应该可以访问仪表板了。

您可以使用以下命令检索令牌:

microk8s config

并得到以下输出:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: ***
    server: https://172.20.10.4:16443
  name: microk8s-cluster
contexts:
- context:
    cluster: microk8s-cluster
    user: admin
  name: microk8s
current-context: microk8s
kind: Config
preferences: {}
users:
- name: admin
  user:
    token: S2Vyb0pBTEZIMXI0SG1DT1hIWEpoeTc3ZTYvaEZXbXdEMnFaMnZ0eWVXMD0K

令牌可用于登录仪表板。