一: 拉取dashboard镜像

镜像有两个,三台机器全都要有镜像。因为POD可能随机分配到其他node节点


# 拉取镜像
docker pull  kubernetesui/dashboard:v2.4.0
docker pull kubernetesui/metrics-scraper:v1.0.8

# 给镜像打标签(目的是匹配清单中的镜像名)
docker tag kubernetesui/dashboard:v2.4.0  k8s.gcr.io/kubernetes-dashboard/dashboard:v2.4.0
docker tag kubernetesui/metrics-scraper:v1.0.8  k8s.gcr.io/kubernetes-dashboard/metrics-scraper:v1.0.8


注意:如果镜像下载失败,我们可以先下载到windows中,然后通过以下命令进行上传


docker load < kubernetesui-dashboard-v2.4.0.tar
docker load < kubernetesui-metrics-scraper-v1.0.8.tar

二: 加载资源清单


#1.0  先下载资源清单文件
wget  https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml

#2.0  修改配置文件
# 1. 把metrics-scraper版本v1.0.7→v1.0.8  2. 把dashboard的镜像拉取策略Always→IfNotPresent
sed -i -e 's#kubernetesui/metrics-scraper:v1.0.7#kubernetesui/metrics-scraper:v1.0.8#g' -e 's#imagePullPolicy: Always#imagePullPolicy: IfNotPresent#g' recommended.yaml


#3.0 apply配置文件
kubectl apply -f  recommended.yaml


三: 编辑dashboard配置

# 
kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard

注意大小写将 type: ClusterIP 改为 type: NodePort


四: 查看dashboard端口

注意:这里的端口是随机生成的


[root@k8s-master ~]# kubectl get svc -A |grep kubernetes-dashboard

kubernetes-dashboard   dashboard-metrics-scraper   ClusterIP      10.106.222.243   <none>        8000/TCP        31d
kubernetes-dashboard   kubernetes-dashboard        NodePort       10.109.96.246    <none>        443:32076/TCP   31d

五: 创建访问账号


# 编辑配置文件
vi 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


# 加载配置文件
kubectl apply -f dash.yaml


六: 获取访问令牌


# 通过这个命令后,我们会获得域密钥,我们暂时用记事本保存下来

kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"



七: 浏览器访问

https://192.168.88.129:32076/

如果访问失败:


# 我们先查看pod是否有问题
kubectl get pods -n kubernetes-dashboard

# 删除异常的Pod,K8S会自动重建,优先使用本地镜像
kubectl delete pods --all -n kubernetes-dashboard

# 重建后再执行 
kubectl get pods -n kubernetes-dashboard


更多推荐