注意:以下的命令都是在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填入,就可以访问了。
来源:oschina
链接:https://my.oschina.net/u/4290001/blog/3457762