首页 > 其他分享 >安装部署 Kubernetes 仪表板(Dashboard)

安装部署 Kubernetes 仪表板(Dashboard)

时间:2023-06-20 09:04:06浏览次数:45  
标签:Kubernetes kubernetes created admin Dashboard more 仪表板 dashboard

简介

Kubernetes 仪表板(Dashboard)是基于网页的 Kubernetes 用户界面。 你可以使用仪表板:

  • 展示了 Kubernetes 集群中的资源状态信息和所有报错信息。
  • 把容器应用部署到 Kubernetes 集群中。
  • 对容器应用排错。
  • 管理集群资源。
  • 获取运行在集群中的应用的概览信息。
  • 创建或者修改 Kubernetes 资源 (比如:Deployment,Job,DaemonSet 等等)。

安装

根据 Kubernetes 版本选择 Kubernetes 仪表板的版本号,具体如下表:

Kubernetes 版本 Kubernetes 仪表板版本
1.17 2.0.0-rc7
1.18 2.0.3
1.19 2.0.5
1.20 2.3.1
1.21 2.4.0
1.23 2.5.1
1.24 2.6.0

执行如下命令安装 Kubernetes 仪表板 2.6.0

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.0/aio/deploy/recommended.yaml

输出如下:

namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created

执行如下命令查看Pod是否已启动:

kubectl get pod -n kubernetes-dashboard

当我们看到状态都为 Running 时,就说明已经启动成功了,如下所示:

NAME                                        READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-8c47d4b5d-l9wrz   1/1     Running   0          2m46s
kubernetes-dashboard-5676d8b865-p9qkp       1/1     Running   0          2m46s

访问

执行 kubectl proxy 命令后,就可以访问了,访问路径:

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

我们可以看到Kubernetes 仪表板的登录界面,如下图:

文章持续更新,微信搜索「万猫学社」第一时间阅读,关注后回复「电子书」,免费获取12本Java必读技术书籍。

创建用户

我们要创建一个名为 one-more-adminServiceAccount ,用来登录 Kubernetes 仪表板。然后再为这个 ServiceAccount 创建一个 Secret ,最后创建一个 ClusterRolebinding,将其绑定到 Kubernetes 集群中默认初始化的 cluster-admin 这个 ClusterRole 上面。

把以下内容保存为one-more-admin.yaml:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: one-more-admin
  namespace: kubernetes-dashboard
---
apiVersion: v1
kind: Secret
metadata:
  name: one-more-admin
  namespace: kubernetes-dashboard
  annotations:
    kubernetes.io/service-account.name: one-more-admin
type: kubernetes.io/service-account-token
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: one-more-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: one-more-admin
  namespace: kubernetes-dashboard

然后,执行以下命令创建:

kubectl apply -f one-more-admin.yaml

输出如下:

serviceaccount/one-more-admin created
secret/one-more-admin created
clusterrolebinding.rbac.authorization.k8s.io/one-more-admin created

然后,执行以下命令获取到 Token :

kubectl -n kubernetes-dashboard describe secret one-more-admin

输出如下:

Name:         one-more-admin
Namespace:    kubernetes-dashboard
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: one-more-admin
              kubernetes.io/service-account.uid: 7ce2bedd-b32f-4ec9-8e42-feb1a09b27e5

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1099 bytes
namespace:  20 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IkJnMDBqZFA1eE5DNV9GVXZWQm9Ramp3ZG5wVGFaUXEzRUd1UlU4QTFTbDQifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJvbmUtbW9yZS1hZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJvbmUtbW9yZS1hZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjdjZTJiZWRkLWIzMmYtNGVjOS04ZTQyLWZlYjFhMDliMjdlNSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDpvbmUtbW9yZS1hZG1pbiJ9.GAXznIvsWtNJR5EAXMQ2iCa5P3ERg4vZmMYi5E3EDZvaFLD2yltjCv5Ib9sEeMEZ1n9Us6ij6RJNYggl-DhiZL4v8PwDq7LVEBjgbctDn1tOk0mEyWtK3I7vDsvpmc6IXpwIkCUhK427aBBDtz1IjBLIhR070nHmT-SeIoyPKuHle7vOPxSl1gsqnhpWFvhRxvhn65uUqIpz6F2yzqRs1afbmbuyocXt-FRTnHzgf4PZkkB_OU0vC3EUnyjLb_qE8hdWMyluAwFzXoOBkQFektOfHd5ypzfSf2jncrSjWOw_0TJtHsv3OLG9qEzcJm4IiRqW_XUDF3n9DXwnX6zdgQ

把其中的 token 输入到 Kubernetes 仪表板登录即可,如下图:

微信公众号:万猫学社

微信扫描二维码

关注后回复「电子书」

获取12本Java必读技术书籍

标签:Kubernetes,kubernetes,created,admin,Dashboard,more,仪表板,dashboard
From: https://www.cnblogs.com/heihaozi/p/17492684.html

相关文章

  • Kubernetes哪一点最打动你?或者,它发布过的哪一项特性让你认为最厉害?
    kubernates打动我的地方应该是他解决了docker的一个痛点,各个docker之间的通信以及集成管理。因为这跟微服务很像,微服务之间也是需要通信和统一管理。知识总是相同的,在这里就体现出来了。用一个例子来演示会更加清晰......
  • kubernetes 生命周期问题分析
    1.Failed --pod里至少一个容器以非0code退出,说明应用有问题,需要debug应用容器2.pending--说明API对象已经被创建和保存在etcd数据库里,但是创建过程出了问题,可能是imagepull出问题,也可能是调度出了问题3.Unknow--说明pod的状态不能持续地被Kubelet发送给kubeapi,这很可能是......
  • kubernetes 资源请求和限制
    1.spec:containers:-name:exampleresources:requests:cpu:100mmemory:64Milimits:cpu:200mmemory:128Mi   例如,一个带有3个容器的pod,每个容器请求0......
  • kubernetes pvc pv 坑
    这里遇到一个问题,开始建立的pv死活claim为空,查看pv以及pvc的配置发现并没有任何名称上的关联,继续研究,发现纯粹是通过storage大小进行匹配的,之前因为照抄书本,一个是5G,一个是8G所以就无法匹配了,修改后成功。用一个例子来演示会更加清晰......
  • Kubernetes——存储
    目录Volume分类示例1:通过emptyDir共享数据示例2:使用HostPath挂载宿主机文件示例3:挂载NFS至容器PersistentVolume基于NFS的PV基于HostPath的PV基于CephRBD的PVPersistentVolumeClaim创建PVC使用PVC动态存储StorageClass定义StorageClass整合StorageClass和CephRBDCSI容器存储接口......
  • (转)kubernetes(k8s) yaml 文件详解2
    原文:https://juejin.cn/post/7202145223014252602#heading-0一、K8S支持的文件格式kubernetes支持YAML和JSON文件格式管理资源对象。JSON格式:主要用于api接口之间消息的传递YAML格式:用于配置和管理,YAML是一种简洁的非标记性语言,内容格式人性化,较易读1、yaml和json的主要区......
  • kubernetes入门
    一、kubernetes简介kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,kubernetes的目标是让部署容器化的应用简单并且高效(powerful),kubernetes提供了应用部署,规划,更新,维护的一种机制。kubernetes的目标是让部署容器化的应用简单并且高效(powerful),kubernetes提供了......
  • 为什么要学习 Kubernetes
    Kubernetes是一种开源的容器编排平台,它可以自动化地部署、扩展和管理容器化的应用程序。它可以帮助开发人员和运维人员更高效地管理大规模的容器化应用,从而提高应用程序的可靠性和可伸缩性。K8s的设计理念是让开发人员专注于应用程序本身,而不是底层基础设施的管理。它是一个非常有......
  • Kubernetes集群认证管理
    Kubernetes集群中所有资源的访问和变更都是通过Kubernetes API Server的REST API来实现的,所以集群安全的关键就在于如何识别并认证客户端身份(Authentication),以及随后访问权限的授权(Authorization)这两个问题。Kubernetes集群提供了3种级别的客户端身份认证方式。1.最严格的HT......
  • 【sentinel】sentinel客户端与dashboard通讯源码分析
    Sentinel客户端的规则大部分都是在Dashboard上完成配置,那么Sentinel客户端与Dashboard之间是如何进行通讯的呢?客户端定时向dashboard发送心跳要想实现Sentinel客户端与Dashboard进行通讯,我们需要引入下面的依赖:<dependency><groupId>com.alibaba.csp</groupId><artifactI......