注意:以下的命令都是在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
如果发现该链接失效,请访问,然后查找最新的链接。
2、查看创建的服务和pod
3、重新创建一个可以供外网访问的Service
# cat kubernetes-dashboard.yaml
apiVersion: v1kind: Servicemetadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kube-systemspec: clusterIP: 10.97.14.63 externalTrafficPolicy: Cluster ports: - nodePort: 30443 port: 443 protocol: TCP targetPort: 8443 selector: k8s-app: kubernetes-dashboard sessionAffinity: None type: NodePortstatus: loadBalancer: {}
在填写clusterIP时,一定要跟已经存在的kubernetes-dashboard服务的IP不同,也就是在第二步中截图中的10.97.14.62,所以我改成了63.
4、创建一个ServiceAccount
# cat dashboard.yaml
apiVersion: v1kind: ServiceAccountmetadata: name: dashboard namespace: kube-system---kind: ClusterRoleBindingapiVersion: rbac.authorization.k8s.io/v1beta1metadata: name: dashboardsubjects: - kind: ServiceAccount name: dashboard namespace: kube-systemroleRef: 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填入,就可以访问了。