1. 下載dashboard文件:
curl -o kubernetes-dashboard.yaml https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml
2. 修改文件:
kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kube-system spec: # 添加Service的type為NodePort type: NodePort ports: - port: 443 targetPort: 8443 # 添加映射到虛擬機的端口,k8s只支持30000以上的端口 nodePort: 30001 selector: k8s-app: kubernetes-dashboard
3. 創建kubernetes-dashboard:
kubectl create -f kubernetes-dashboard.yaml
4. 由於我之前安裝過一次,所以報錯:
Error from server (AlreadyExists): error when creating "kubernetes-dashboard.yaml": secrets "kubernetes-dashboard-certs" already exists Error from server (AlreadyExists): error when creating "kubernetes-dashboard.yaml": serviceaccounts "kubernetes-dashboard" already exists Error from server (AlreadyExists): error when creating "kubernetes-dashboard.yaml": roles.rbac.authorization.k8s.io "kubernetes-dashboard-minimal" already exists Error from server (AlreadyExists): error when creating "kubernetes-dashboard.yaml": rolebindings.rbac.authorization.k8s.io "kubernetes-dashboard-minimal" already exists Error from server (AlreadyExists): error when creating "kubernetes-dashboard.yaml": deployments.apps "kubernetes-dashboard" already exists Error from server (AlreadyExists): error when creating "kubernetes-dashboard.yaml": services "kubernetes-dashboard" already exists
5. 卸載之前安裝的內容:
kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml
6. 重新安裝dashboard:
kubectl create -f kubernetes-dashboard.yaml
7. 獲取token:
kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token
8. 啟動kubernetes-dashboard:
kubectl proxy
9. 訪問以下鏈接時,將獲取的token粘貼到輸入框中:
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/overview?namespace=default
大功告成!
如果登陸一會兒后發現提示token過期,強制退出,那么可以修改token的過期時間:
方式一:找到kubernetes-dashboard的配置文件,添加配置:
--token-ttl=43200
如下圖所示:
2. 或者修改dashboard的yaml文件:
ports: - containerPort: 8443 protocol: TCP args: - --auto-generate-certificates - --token-ttl=43200