选择合适版本
根据Kubernetes版本选择对应版本 可去github releases页面查看
查看Kubernetes版本
kubectl version
构建 Pod
具体命令可以查看 github releases页面 Installation
查看 Pod 状态
kubectl get pods --all-namespaces | grep dashboard
重新创建 dashboard 服务
删除现有的 dashboard 服务,dashboard 服务的 namespace 是 kubernetes-dashboard,但是该服务的类型是ClusterIP,不便于我们通过浏览器访问,因此需要改成 NodePort 类型的
查看类型
kubectl get svc --all-namespaces
删除 dashboard 服务
kubectl delete service kubernetes-dashboard --namespace=kubernetes-dashboard
创建配置文件dashboard-svc.yaml
cat > dashboard-svc.yaml <<-EOF
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
EOF
创建服务
kubectl apply -f dashboard-svc.yaml
创建管理员角色
创建配置文件dashboard-svc-account.yaml
cat > dashboard-svc-account.yaml <<-EOF
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
EOF
创建角色
kubectl apply -f dashboard-svc-account.yaml
获取token
# 查看账号
kubectl get secret -n kube-system |grep admin|awk '{print $1}'
# 获取token
kubectl describe secret dashboard-admin-token-xxxxx(上面获取的账号) -n kube-system|grep '^token'|awk '{print $2}'
登录
查看访问端口
kubectl get svc --all-namespaces | grep dashboard