如何强制 microk8s kubectl 为我的仪表板生成令牌?

如何强制 microk8s kubectl 为我的仪表板生成令牌?

我正在尝试获取 kubernetes 仪表板的令牌。似乎没有生成任何令牌。我该如何强制它生成一个?以下是我所做的:

我在本地笔记本电脑上的 hyperV VM 上安装了 Ubuntu 20.04。我使用 ubuntu 安装程序安装了 microk8s snap。然后我使用以下命令安装了仪表板等:

microk8s enable dns dashboard storage

我在单独的终端启动了一个代理:

microk8s kubectl port-forward -n kube-system service/kubernetes-dashboard 10443:443 --address 0.0.0.0 

当然需要输入令牌。尝试使用以下命令导出令牌:

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

结果输出显示没有标记:

Name:         kubernetes-dashboard-certs
Namespace:    kube-system
Labels:       k8s-app=kubernetes-dashboard
Annotations:  <none>

Type:  Opaque

Data
====


Name:         kubernetes-dashboard-csrf
Namespace:    kube-system
Labels:       k8s-app=kubernetes-dashboard
Annotations:  <none>

Type:  Opaque

Data
====
csrf:  256 bytes


Name:         kubernetes-dashboard-key-holder
Namespace:    kube-system
Labels:       <none>
Annotations:  <none>

Type:  Opaque

Data
====
priv:  1675 bytes
pub:   459 bytes

答案1

你可能已经使用 1.24 或更高版本。因此命令要简单得多:

microk8s kubectl create token default

stdout将会抛出一个可用于仪表板的令牌。

答案2

如果您对令牌的默认到期日期感到困扰,例如太短,您可以为令牌设置一个延长期限(例如:10 年,以分钟为单位)

   microk8s kubectl -n kubernetes-dashboard create token simple-user --duration 525600m

我在在线演示中使用它来允许演示用户进行有限的访问。 https://dashboard.homekube.org
(带有演示/演示的基本身份验证)

相关内容