Kubernetes — Dashboard

这篇具有很好参考价值的文章主要介绍了Kubernetes — Dashboard。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、Dashboard介绍

1、Dashboard是什么

1. 部署Dashboard

2.访问dashboard

2、Dashboard 认证 - 配置登录权限

1. token(令牌)方式认证

2.创建Token

2. kubeconfig 方式认证

3、Dashboard 界面结构

 4、Dashboard 界面介绍

1. Cluster

2. Namespace

3. Overview

4. Workload

5. Config and Storage

二、Dashboard功能

1、Dashboard能做什么 - 增

2、Dashboard能做什么 - 查

3、Dashboard能做什么 - 改

4、使用 Dashboard 能做什么 - 删

三、Dashboard部署应用

1、使用Dashboard部署一个应用

2、使用Dashboard部署一个应用 - 必填项

1. App name:

2. Container image:

3. Number of pods:

3、使用Dashboard 部署一个应用 - 选填项

4、使用Dashboard 部署一个应用 - 高级选项 ​​​​​​


一、Dashboard介绍

1、Dashboard是什么

Dashboard是kubernetes的用户网页接口,用于界面化管理Kubernetes集群

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

bs体系:浏览器和服务器,dashboard属于bs体系中的一类

cs体系:客户端和服务器

1. 部署Dashboard

部署dashboard,默认官方提供部署地址国内无法打开

$ wget https://gitee.com/cai_xiao_man/file/blob/master/k8s/dashboard/recommended.yaml
$ kubectl apply -f recommended.yaml 
namespace/kubernetes-dashboard created        #创建了名称空间
serviceaccount/kubernetes-dashboard created   #创建了服务账号
service/kubernetes-dashboard created          #创建了服务
secret/kubernetes-dashboard-certs created     #创建了3个机密
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    
$ kubectl -n kubernetes-dashboard get pods -o wide    #查看命名空间
NAME                                        READY   STATUS    RESTARTS   AGE     IP              NODE          NOMINATED NODE   READINESS GATES
dashboard-metrics-scraper-8c47d4b5d-kk9jw   1/1     Running   0          5h12m   172.16.126.13   k8s-worker2   <none>           <none>
kubernetes-'dashboard'-6c75475678-jbhtq       1/1     Running   0          5h12m   172.16.194.70   k8s-worker1   <none>           <none>
'查看dashboard运行在哪台设备'
'将服务类型改为NodePort'
$ kubectl -n kubernetes-dashboard patch services kubernetes-dashboard -p '{"spec":{"type":"NodePort"}}'
service/kubernetes-dashboard patched

'或者用edit方式修改服务也可以'
$ kubectl -n kubernetes-dashboard edit services kubernetes-dashboard

$ kubectl -n kubernetes-dashboard get services kubernetes-dashboard #查看类型已修改
NAME                   TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
kubernetes-dashboard   NodePort   10.107.166.102   <none>        443:'30929'/TCP   5h33m

  参考资料(patch):           Kubectl Reference Docs (kubernetes.io)

  参考资料(kubectl):        命令行工具 (kubectl) | Kubernetes

  参考资料(部署仪表盘): 部署和访问 Kubernetes 仪表板(Dashboard) | Kubernetes

2.访问dashboard

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

提示:发送的是http请求,但是要访问https 

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux提示: 证书和主机名不匹配,或者是私有证书无法访问,输入 thisisunsafe ,会自动跳转到如下界面

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

2、Dashboard 认证 - 配置登录权限

1. token(令牌)方式认证

①. 创建serviceaccount,根据其管理目标,rolebinding或者clusterrolebinding绑定至合理role或者clusterrole

②. 获取到此 serviceAccount 的 secret,查看secret 的详细信息,其中就有token,粘贴到web界面的令牌里面

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

注意:新版本后不再有token,需要自行创建

$ kubectl -n kubernetes-dashboard describe secrets “token” #因为没有所以无法查看

2.创建Token

$ kubectl -n kubernetes-dashboard create token kubernetes-dashboard #服务账号是kubernetes-dashboard
...输出省略... 此为token值

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

 查看权限

$ kubectl -n kubernetes-dashboard get serviceaccounts kubernetes-dashboard #查看服务状态
NAME                   SECRETS   AGE
kubernetes-dashboard   0         8h
'因为token只是创建了,但是没有放在secrets里'

$ kubectl -n kubernetes-dashboard describe clusterrole cluster-admin #集群管理员有所有权限
Name:         cluster-admin
Labels:       kubernetes.io/bootstrapping=rbac-defaults
Annotations:  rbac.authorization.kubernetes.io/autoupdate: true
PolicyRule:
  Resources  Non-Resource URLs  Resource Names  Verbs
  ---------  -----------------  --------------  -----
  *.*        []                 []              [*]
             [*]                []              [*]

$ kubectl -n kubernetes-dashboard describe clusterrole kubernetes-dashboard #dashboard只有看的权限
Name:         kubernetes-dashboard
Labels:       k8s-app=kubernetes-dashboard
Annotations:  <none>
PolicyRule:
  Resources             Non-Resource URLs  Resource Names  Verbs
  ---------             -----------------  --------------  -----
  nodes.metrics.k8s.io  []                 []              [get list watch]
  pods.metrics.k8s.io   []                 []              [get list watch]

提权

$ kubectl create clusterrolebinding kubernetes-dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:kubernetes-dashboard 
'集群角色绑定(kubernetes-dashboard-cluster-admin名称任意)'
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-cluster-admin created

$ kubectl get clusterrolebindings -o wide | grep dash    #查看集群的权限绑定
kubernetes-dashboard                                   ClusterRole/kubernetes-dashboard                                                   9h                                                                                         kubernetes-dashboard/kubernetes-dashboard
kubernetes-dashboard-cluster-admin                     ClusterRole/cluster-admin                                                          3m36s                                                                                      kubernetes-dashboard/kubernetes-dashboard

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

参考文档(生成secret): 使用 kubectl 管理 Secret | Kubernetes

参考文档: Kubectl Reference Docs (kubernetes.io)

2. kubeconfig 方式认证

把 serviceaccount 的token 封装为 kubeconfig 文件

①. 创建服务账号

$ kubectl -n kube-system create serviceaccount dashboard-admin 
serviceaccount/dashboard-admin created
'v1.24.0 更新之后进行创建 ServiceAccount 不会自动生成 Secret 需要对其手动创建'
$ kubectl -n kube-system describe serviceaccounts dashboard-admin #查询服务账号信息,没有对 Token 进行创建
Name:                dashboard-admin
Namespace:           kube-system
Labels:              <none>
Annotations:         <none>
Image pull secrets:  <none>
Mountable secrets:   <none>
Tokens:              <none>
Events:              <none>
$ kubectl -n kube-system get secrets #查看secrets没有被创建
No resources found in kube-system namespace.

②. 创建secret(yaml方式)

$ kubectl apply -f- <<EOF
apiVersion: v1                                                                                           
kind: Secret
type: kubernetes.io/service-account-token
metadata:
  name: dashboard-admin
  namespace: kube-system
  annotations:
    kubernetes.io/service-account.name: "dashboard-admin"
$ kubectl -n kube-system describe serviceaccounts dashboard-admin 
Name:                dashboard-admin
Namespace:           kube-system
Labels:              <none>
Annotations:         <none>
Image pull secrets:  <none>
Mountable secrets:   <none>
Tokens:              dashboard-admin    'ServiceAccount 已对 Secret 关联'
Events:              <none>

$ kubectl -n kube-system describe secrets dashboard-admin #查看详细信息
...输出省略...

参考文档:Secret | Kubernetes

②. 账号提权

$ kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
'服务账号绑定、提权(那个名称空间:服务账号)'
clusterrolebinding.rbac.authorization.k8s.io/dashboard-admin created

③. 制作配置文件

$ SN=$(kubectl -n kube-system get secret | awk '/dashboard-admin/ {print $1}') #查key
$ DASH_TOKEN=$(kubectl -n kube-system get secret ${SN} -o jsonpath={.data.token} | base64 -d)    #获取token

'设置集群,创建一个配置文件、集群名字叫ck8s、ca证书用的ca.crt、开启https、服务器地址和端口(默认文件不存在)'
$ kubectl config set-cluster ck8s \
  --certificate-authority=/etc/kubernetes/pki/ca.crt \    
	--embed-certs=true \
	--server=https://192.168.147.102:6443 \
	--kubeconfig=dashboard-admin.kubeconfig

'设置上下文关系,用户名@集群名、ck8s集群中、用户名、添加到配置文件中(配置文件默认不存在)
配置后集群名和用户名已经存在,cat dashboard-admin.kubeconfig来查看'
$ kubectl config set-context dashboard-admin@ck8s \
	--cluster=cks8 \
	--user=dashboard-admin \
	--kubeconfig=dashboard-admin.kubeconfig

'创建令牌,设置账号名dashboard-admin、设置token、设置(再看用户下边多了token)'
$ kubectl config set-credentials dashboard-admin \
	--token=${DASH_TOKEN} \
	--kubeconfig=dashboard-admin.kubeconfig

'使用刚刚创建的集群用户'
$ kubectl config use-context dashboard-admin@ck8s \
	--kubeconfig=dashboard-admin.kubeconfig

$ cat -n dashboard-admin.kubeconfig |grep current #查看当前已经切换到此用户
    12	current-context: dashboard-admin@ck8s

④. 比较文件

$ vimdiff ~/.kube/config dashboard-admin.kubeconfig

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

⑤. 测试

将kubeconfig文件拷贝到物理机,然后访问浏览器

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

参考文件: Kubectl Reference Docs (kubernetes.io)

                   配置对多集群的访问 | Kubernetes

3、Dashboard 界面结构

1. 顶部操作区(用户可以搜索集群中的资源、名称空间、创建资源)

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

 2. 左边导航菜单(查看和管理集群中的各种资源)

        ①. Cluster 级别资源

 3. 中间主体区(在导航菜单中点击了某类资源,中间主体区就会显示该资源的所有实例)

 4、Dashboard 界面介绍

1. Cluster

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

kubernetes-dashboard,k8s,kubernetes,运维,容器,linuxkubernetes-dashboard,k8s,kubernetes,运维,容器,linux

 kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

2. Namespace

选中不同Namespace,可以看到该 Namespace 下所有的资源情况

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

3. Overview

对于集群和命名空间管理员,Dashboard 列出 Nodes、Namespaces 和持久化卷,并为其提供详细视图。Node 列表视图包含所有Node 的 CPU 和内存使用指标。详情视图显示Node的指标、规格、状态、分配的资源、事件和Node 上运行的Pod(新版本不再有,新版使用workload替代

4. Workload

①. 显示所选Namespace 中运行的所有基于 Workload 类型(如 Deployments、ReplicaSets等)的应用程序,并且每个Workload 类型可以分开查看

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

②. Workload 的详细视图显示了对象的状态、规格信息以及各个对象之间的关系

5. Config and Storage

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

二、Dashboard功能

1、Dashboard能做什么 - 增

为Kubernetes 集群部署容器化应用

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

 从表单创建:*代表必选、

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

 

2、Dashboard能做什么 - 查

1. 查看 Kubernetes 集群中容器化应用的信息

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

 

2. 通过Kubernetes 集群容器化应用的日志进行故障排查

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

 

3. 查看Kubernetes 集群的资源状态

3、Dashboard能做什么 - 改

1. 修改Kubernetes 集群资源(Deployments、Jobs、DaemonSets等)

2. 扩容或者缩容Pod数量

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

3. 编辑应用的 yaml 文件(修改点击更新后直接生效)

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

4、使用 Dashboard 能做什么 - 删

对于不使用 / 有问题的应用进行删除,达到资源合理使用目的

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

三、Dashboard部署应用

1、使用Dashboard部署一个应用

2、使用Dashboard部署一个应用 - 必填项

1. App name:

必须在所选的Kubernetes namespace 中唯一,且必须以小写字母开头和结尾,只能包含小写字母、数字和“-”。它只限于24个字符,头和尾的空格会被忽略。将会在

Replication Controller 和 Service 中添加带有该名称的标签

2. Container image:

在registry 上的公有 Docker 容器镜像或托管在Google Container Registry 或 Docker Hub

上私有镜像的URL,容器镜像规格必须以冒号结尾

3. Number of pods:

应用程序部署的目标数量,该值必须是正整数

3、使用Dashboard 部署一个应用 - 选填项

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

服务、协议等

Services

        ①. 外部Service:对于应用的某些部分(如前端),需要将Service(如集群的公共IP地址)裸露出去。对于外部Service,需要打开一个或多个端口来执行此操作

        ②. 内部Service:只在集群内部可见的服务

不管哪种Service类型,如果选择创建Service,需要配合容器的监听端口(传入)

包括 port 和 Target port

        ①. 该Service将传入端口映射到容器的目标端口上,而且自动会添加到部署Pod的路由

        ②. 支持的协议是TCP 和 UDP

        ③. Service 的内部 DNS 名称将使用指定的 app name

4、使用Dashboard 部署一个应用 - 高级选项 ​​​​​​

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

 1. Description:此处输入的文本将作为Replication Controller 的注释添加到应用程序的详细信息中

 2. Labels:应用程序的默认标签包含应用程序名称和版本,可以指定的附加标签(发行版本、环境信息等)到 Replication Controller 、Service、Pod里

kubernetes-dashboard,k8s,kubernetes,运维,容器,linux

3. Namespace:在下拉列表中提供所有可用的 Namespace,也可以创建新的Namespace,名称最多包含63个字母数字字符和“-”,创建成功后,默认选中,如果创建失败,则自动选择列表中第一个

4. Image Pull Secret:如果指定的Docker 容器镜像是私有镜像,则某些私有镜像可能需要Pull Secret 凭据

        ①. Dashboard 提供所有可用的Secret,并允许您创建新的Secret,Secret的名称必须遵循DNS域名语法(如new.image-pull.secret),最大支持253个字符

        ②. Secret 的内容必须是base64 编码和在.dockercfg 文件中指定的

5. CPU requirement (cores)和 Memory requirement(MiB):为容器指定最小的资源限制,默认情况下,Pod运行时是没有CPU和内存的限制

6. Run command 和 Run command arguments:默认情况下,容器会使用Docker 镜像中指定的默认入口点命令运行,可以使用命令选项和参数来重写它

7. Run as privileged:该设置决定特权容器中的进程是否相当于在主机上运行为root权限的进程,特权容器具备使用操作网络堆栈和访问设备等的能力

8. Environment variables:Kubernetes 通过环境变量暴露Service,可以使用环境变量的值编写环境变量或传递参数到命令中,这些变量可以用于在应用中查找Service,这个值可以通过“$(VAR_NAME)” 语法来引用其他变量文章来源地址https://www.toymoban.com/news/detail-818524.html

到了这里,关于Kubernetes — Dashboard的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8s(kubernetes)集群搭建及dashboard安装、基础应用部署

    本质是一组服务器集群,在集群每个节点上运行特定的程序,来对节点中的容器进行管理。实现资源管理的自动化。 自我修复 弹性伸缩 服务发现 负载均衡 版本回退 存储编排 控制节点(master)-控制平面 APIserver :资源操作的唯一入口 scheduler :集群资源调度,将Pod调度到node节

    2024年02月08日
    浏览(53)
  • Kubernetes(K8s)从入门到精通系列之十七:minikube启动K8s dashboard

    Kubernetes(K8s)从入门到精通系列之十六:linux服务器安装minikube的详细步骤

    2024年02月12日
    浏览(47)
  • 【kubernetes系列】Kubernetes之配置dashboard安装使用

    Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。 你可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源 (如 Deployment,Job,DaemonSet 等等)。

    2024年02月07日
    浏览(43)
  • Kubernetes — Dashboard

    目录 一、Dashboard介绍 1、Dashboard是什么 1. 部署Dashboard 2.访问dashboard 2、Dashboard 认证 - 配置登录权限 1. token(令牌)方式认证 2.创建Token 2. kubeconfig 方式认证 3、Dashboard 界面结构  4、Dashboard 界面介绍 1. Cluster 2. Namespace 3. Overview 4. Workload 5. Config and Storage 二、Dashboard功能 1、Da

    2024年01月23日
    浏览(33)
  • 14.kubernetes部署Dashboard

    Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。 你可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源 (如 Deployment,Job,DaemonSet 等等)。

    2024年02月01日
    浏览(40)
  • Kubernetes Dashboard部署安装

    目录 Dashboard 官方文档:部署和访问 Kubernetes 仪表板(Dashboard) | Kubernetes 参考文档:(120条消息) K8S 安装 Dashboard_k8s 安装dashboard_tom.ma的博客-CSDN博客 扩展: K8S 安装 Dashboard 1、在 master 节点执行  1.1、下载recommended.yaml(可能需要翻墙才能下载) 1.2、创建 pod 2、查看dashboard是否

    2024年02月08日
    浏览(40)
  • [kubernetes]安装dashboard

    kubernetes官方文档中的web UI网页管理工具是kubernetes-dashboard,可提供部署应用、资源对象管理、容器日志查询、系统监控等常用的集群管理功能。为了在页面上显示系统资源的使用情况,需要部署 Metrics Server(参考博客园 - 安装metrics-server)。 kubernetes版本:1.26.6 官方yaml。git

    2024年02月10日
    浏览(44)
  • (二十二)Kubernetes系列之dashboard

    1.下载模板文件 wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml 修改service模板,新增type:NodePot和nodePort:30443 2.部署 kubectl apply -f recommended.yaml 3.查看pod和服务 kubectl get pods  -n kubernetes-dashboard 4.查看service kubectl get svc -n kubernetes-dashboard 5.访问路径查看是否

    2024年01月21日
    浏览(43)
  • Kubernetes详解(五十九)——Kubernetes Dashboard无法用浏览器访问解决

    今天继续给大家介绍Linux运维相关知识,本文主要内容是Kubernetes Dashboard配置后无法用浏览器访问解决。 在前文中,Kubernetes详解(五十六)——Dashboard安装与部署中,我们配置安装了Kubernetes集群的Dashboard,但是在最后的浏览器访问时,我们却有时无法用浏览器访问,反而会出

    2024年02月08日
    浏览(51)
  • kubernetes--技术文档--可视化管理界面dashboard安装部署

            使用官方提供的可视化界面来完成。         Kubernetes Dashboard是Kubernetes集群的Web UI,用户可以通过Dashboard进行管理集群内所有资源对象,例如查看资源对象的运行情况,部署新的资源对象,伸缩Deployment中的Pod数量等等一系列操作。         需要:      

    2024年02月12日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包