注意:以下的命令都是在kubernetes 1.15中執行的,如果是其他版本,不保證效果。
1、創建kubernetes-dashboard服務和對應的pod
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
如果發現該鏈接失效,請訪問https://github.com/kubernetes/dashboard,然后查找最新的鏈接。
2、查看創建的服務和pod
3、重新創建一個可以供外網訪問的Service
# cat kubernetes-dashboard.yaml
apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kube-system
spec:
clusterIP: 10.97.14.63
externalTrafficPolicy: Cluster
ports:
- nodePort: 30443
port: 443
protocol: TCP
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}
在填寫clusterIP時,一定要跟已經存在的kubernetes-dashboard服務的IP不同,也就是在第二步中截圖中的10.97.14.62,所以我改成了63.
4、創建一個ServiceAccount
# cat dashboard.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: dashboard
namespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: dashboard
subjects:
- kind: ServiceAccount
name: dashboard
namespace: kube-system
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
我們需要使用該ServiceAccount的secret作為登錄dashboard的憑證。
因為官方給的默認權限是最小的,所以我們要自建一個最大權限的SA。
5、獲取secret中的token
# kubectl describe secret dashboard -n kube-system
類似這樣:
6、訪問dashboard
瀏覽器輸入:(請使用火狐瀏覽器,使用谷歌瀏覽器時不好使)
https://192.168.198.136:30443
首次訪問時,會阻攔你,所以你需要繼續訪問,然后選擇驗證方式時,會有kubeconfig和令牌兩種方式,我們選擇令牌。
然后將第5步中獲取的token填入,就可以訪問了。