- 在master节点执行:
k8s 对应的dashborad 版本去官网查,因为我这个是1.18版本的,下载对应版本
https://github.com/kubernetes/dashboard/releases
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
kubectl apply -f recommended.yaml
- 查看创建的pod
kubectl get pods -A
- 查看svc发现该服务的类型是ClusterIP,不便于我们通过浏览器访问,因此需要改成NodePort型的
kubectl get svc -A
- 删除这个service
kubectl delete service kubernetes-dashboard --namespace=kubernetes-dashboard
- 创建yaml文件,改为NodePort端口暴露方式去访问
vim dashboard-svc.yaml
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort
ports:
- port: 443
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
kubectl apply -f dashboard-svc.yaml
查看pod日志没有报错
- 想要访问dashboard服务,就要有访问权限,创建kubernetes-dashboard管理员角色
vim dashboard-svc-account.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: dashboard-admin
namespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: dashboard-admin
subjects:
- kind: ServiceAccount
name: dashboard-admin
namespace: kube-system
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
kubectl create -f dashboard-svc-account.yaml
- 获取token
kubectl get secret -n kube-system | grep admin
kubectl describe secret dashboard-admin-token-p5s5z -n kube-system | grep '^token'
- 登陆
复制粘贴刚刚生成的token,就OK了