我正在尝试获取 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
(带有演示/演示的基本身份验证)