0、进阶:自己动手写一个Kubernetes Dashboard
1、查看匹配的版本
Kubernetes版本v1.23,dashboard版本选择v2.5.1
2、部署Dashboard
执行上述命令,若访问失败可提前下载recommended.yaml文件,然后执行下述命令:
kubectl apply -f recommended.yaml
执行 kubectl get pod -A 查看pod状态,kubernetes-dashboard 命名空间下的pod都处于Running状态则执行下一步
3、创建访问用户并绑定角色
dash.yaml文件内容如下
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
4、获取登录密钥
4.1、暴露端口,以便集群外访问,执行下述命令,修改type为NodePort,若无此需求则跳过此步骤,直接执行4.2
kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard
4.2、获取端口及secret
kubectl get svc -A |grep kubernetes-dashboard
kubectl get secret -n kubernetes-dashboard | grep token
是否暴露端口:否
是否暴露端口:是
kubectl describe secret admin-user-token-(...) -n kubernetes-dashboard
复制上述Token,暴露端口访问https://ip:30895,不暴露端口访问https://ClusterIP:443,注意ip和ClusterIP不同
至此,Dashboard部署完成
5、问题记录
pod一直处于ContainerCreating,执行 kubectl describe pod pod_name -n pod_namespace 命令,显示一直在拉取镜像,此时执行 docker images 查看本地是否已经拉取下来镜像,若未拉取下来则手动拉取,若已拉取则修改 recommended.yaml 文件里面的镜像拉取策略,Always改为IfNotPresent