ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

k8s集群中部署和访问Dashboard服务

2022-01-26 17:36:05  阅读:447  来源: 互联网

标签:kubectl kubernetes v2.4 yaml 集群 Dashboard kubernetesui k8s dashboard


1、概述

k8s的dashboard组件可以提供UI界面对集群进行管理,包括对应用问题的处理和集群本身的问题的处理。

本文介绍如何在k8s集群中部署dashboard服务。

2、部署过程

2.1、获取配置yaml

curl -s -o dashboard-v2.4.0.yaml https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml

2.2、查看使用的镜像

[root@nccztsjb-node-23 ~]# grep "image:" dashboard-v2.4.0.yaml 
          image: kubernetesui/dashboard:v2.4.0
          image: kubernetesui/metrics-scraper:v1.0.7

2.3、本地拉取镜像推送到本地的harbor中

注意:这样做的目的是为了后续部署时,如果没有网络可用时进行部署,或者多次部署直接使用本地harbor加快速度。

拉取镜像

docker pull kubernetesui/dashboard:v2.4.0
docker pull kubernetesui/metrics-scraper:v1.0.7

修改tag,推送镜像到harbor

docker tag kubernetesui/metrics-scraper:v1.0.7 172.20.58.152/kubernetes/metrics-scraper:v1.0.7
docker tag kubernetesui/dashboard:v2.4.0 172.20.58.152/kubernetes/dashboard:v2.4.0

docker push 172.20.58.152/kubernetes/metrics-scraper:v1.0.7
docker push 172.20.58.152/kubernetes/dashboard:v2.4.0

2.4、修改yaml中镜像信息

sed -i 's|kubernetesui/dashboard:v2.4.0|172.20.58.152/kubernetes/dashboard:v2.4.0|' dashboard-v2.4.0.yaml 
sed -i 's|kubernetesui/metrics-scraper:v1.0.7|172.20.58.152/kubernetes/metrics-scraper:v1.0.7|' dashboard-v2.4.0.yaml 

2.5、进行服务部署

kubectl apply -f dashboard-v2.4.0.yaml

查看pod的状态

[root@nccztsjb-node-23 log]# kubectl get pod -n kubernetes-dashboard
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-57c4ff748c-wzz88   1/1     Running   0          51s
kubernetes-dashboard-5dddc8fbbf-zxvhw        1/1     Running   0          51s
[root@nccztsjb-node-23 log]# 

服务运行正常。

3、dashboard的访问

3.1、端口映射

可以通过service的nodePort模式,kubectl proxy,kubectl-port,ingress等各种方式进行访问。

本例通过port-forwad将service映射到主机上

nohup kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 8080:443 --address='172.20.58.83' &

--address为主机IP,后续访问通过这个IP地址。

通过浏览器进行访问https://172.20.58.83:8080

注意:是https。因为是将443映射到8080

OK,可以通过浏览器访问到dashboard。

3.2、用户权限及token

默认创建的service account权限只有list,watch的一些权限,如果想要对集群有更高的权限,可以单独创建用户。

创建用户、授予cluster-admin角色权限

kubectl apply -f - <<EOF
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user-dashoboard-sa
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user-dashoboard-crbing
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin  #将cluster-admin即管理员权限授予admin-user-dashoboard-sa
subjects:
- kind: ServiceAccount
  name: admin-user-dashoboard-sa
  namespace: kubernetes-dashboard
EOF

获取token

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

输出类似如下

eyJhbGciOiJSUzI1NiIsImtpZCI6InZMOXNUOEZsckNXS0IwX2p0X1pyMEJVbDdMYzBlNDRlVmFmdHpHQUg1dW8ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLWRhc2hvYm9hcmQtc2EtdG9rZW4tN3BraHMiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiYWRtaW4tdXNlci1kYXNob2JvYXJkLXNhIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiMjk0MTU0OTgtMDQ2NC00NmQxLWE3NjgtMzQwNjVmMjA1ZmM3Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmVybmV0ZXMtZGFzaGJvYXJkOmFkbWluLXVzZXItZGFzaG9ib2FyZC1zYSJ9.XrvSELIZKcXQToO3m_UYo94GwTXFbCFboIKphbsaS6Rf1t7ZzbMS7TKYhT2aQI5f010NDYHHgtDx3dKd2Ei7OKz7yjpYD2XgZseIvMwaj4aer9V1aPVKcdhzry3AVShBE6ABA5Lm0IXWzR-s5FjFWGMWZvYEndb54PvHKA_B1j2zhWHIjZn--YeX48dfdXiakpfI_aehucUaB-vZl9HSC0R_k3FymiVR98Iz8AJ9-87aIZ_LPbTKPVTF5TkMW3sokwxRVl3C2R9OMr6rb5IaP7vJXN4ALV_DAyQNOjSPNd9UBeH7E3FhD4jYPuPJn2gVQg5flKpDcAN96J-IeJTy4Q

3.3、浏览器输入token访问

这样就可以看到当前命名空间中部署的服务。

同样也可以切换命名空间,查看不同的对象和创建、管理具体的资源对象。

OK,dashboard部署完成。

注意,如果要看到各个资源的统计信息,需要先部署好mestric server.

标签:kubectl,kubernetes,v2.4,yaml,集群,Dashboard,kubernetesui,k8s,dashboard
来源: https://www.cnblogs.com/chuanzhang053/p/15847433.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有