[云原生专题-28]:K8S - Kubernetes(K8S)Master集群构建与安装过程详细解读 - Dashboard的安装与访问

2023-11-13

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址: https://blog.csdn.net/HiWangWenBing/article/details/122788745


目录

第1章 Dashboard概述

第2章 安装前置条件

第3章 Dashboard的安装

第4章 Dashboard的访问

4.1 NodePort访问

第5章 Dashboard的使用


第1章 Dashboard概述

K8S Dashboard是官方的一个基于WEB的用户界面,专门用来管理K8S集群,并可展示集群的状态。

K8S集群安装好后默认没有包含Dashboard,我们需要额外创建它。

Dashboard与kubeadm与kubectl一并完成对K8S集群的操作、维护、管理(OAM)

第2章 安装前置条件

K8S Dashboard只适合安装在manager节点。

[云原生专题-24]:K8S - Kubernetes(K8S)Master集群构建与安装过程详细解读 - 初始控制节点的安装_文火冰糖(王文兵)的博客-CSDN博客作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122759250目录第一步:集群规划1.1 K8S的官方架构1.2 K8S的实验架构1.3 主要步骤1.4K8S集群搭建方式选择1.5 官方参考第二步:搭建云服务器2.1 安装服务器2.2 安装后检查第三步:搭建Docker环境(云平台手工操作)3.1.https://blog.csdn.net/HiWangWenBing/article/details/122759250

第3章 Dashboard的安装

(1)官方一步安装命令

GitHub - kubernetes/dashboard: General-purpose web UI for Kubernetes clusters

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

问题:无法远程访问远程的配置文件。

因此需要手工下载配置文件到云服务器上。

(2) 用IE打开配置文件

https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml

(3)在本地创建配置文件

$ cd ~
$ touch recommended.yaml
vi recommended.yaml

cat recommended.yaml

(4)手工下载dashboard镜像

$ docker pull kubernetes-dashboard-amd64

(5)Dashboard的安装

[root@k8s-master1 ~]# kubectl apply -f ./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

(6)dashboard是以pod服务的形式存在的,参看pod的运行情况

[root@k8s-master1 ~]# kubectl get pods -A
NAMESPACE              NAME                                         READY   STATUS              RESTARTS   AGE
kube-system            coredns-6d8c4cb4d-6cts2                      0/1     ContainerCreating   0          107m
kube-system            coredns-6d8c4cb4d-w6x5k                      0/1     ContainerCreating   0          107m
kube-system            etcd-k8s-master1                             1/1     Running             0          108m
kube-system            kube-apiserver-k8s-master1                   1/1     Running             29         108m
kube-system            kube-controller-manager-k8s-master1          1/1     Running             0          108m
kube-system            kube-proxy-5wrkx                             1/1     Running             0          107m
kube-system            kube-scheduler-k8s-master1                   1/1     Running             0          108m
kubernetes-dashboard   dashboard-metrics-scraper-799d786dbf-88c2w   0/1     ContainerCreating   0          10m
kubernetes-dashboard   kubernetes-dashboard-546cbc58cd-292dr        0/1     ContainerCreating   0          10m

服务所在的容器正在创建过程中...........等待,直处于running状态.

[root@k8s-master1 ~]# kubectl get pods -A
NAMESPACE              NAME                                         READY   STATUS    RESTARTS        AGE
kube-system            calico-kube-controllers-566dc76669-stvkr     1/1     Running   0               104s
kube-system            calico-node-fz7s6                            1/1     Running   0               104s
kube-system            coredns-6d8c4cb4d-6cts2                      1/1     Running   0               118m
kube-system            coredns-6d8c4cb4d-w6x5k                      1/1     Running   0               118m
kube-system            etcd-k8s-master1                             1/1     Running   1 (9m19s ago)   118m
kube-system            kube-apiserver-k8s-master1                   1/1     Running   30 (9m9s ago)   118m
kube-system            kube-controller-manager-k8s-master1          1/1     Running   1 (9m19s ago)   118m
kube-system            kube-proxy-5wrkx                             1/1     Running   1 (9m19s ago)   118m
kube-system            kube-scheduler-k8s-master1                   1/1     Running   1 (9m19s ago)   118m
kubernetes-dashboard   dashboard-metrics-scraper-799d786dbf-88c2w   1/1     Running   0               20m
kubernetes-dashboard   kubernetes-dashboard-546cbc58cd-292dr        1/1     Running   0               20m

kubernetes-dashboard安装成功!!!!

第4章 Dashboard的访问

根据官方文档,目前访问Dashboard有四种方式:

  • NodePort:通过任意以节点的IP地址和端口号访问。
  • API Server:
  • kubectl proxy
  • Ingress

4.1 NodePort访问

(1)设置NodePort访问方式

kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard

ClusterIP -> NodePort

ClusterIP与NodePort的区别是:

ClusterIP是对外提供一个统一的IP地址,使用统一的集群IP地址访问。

NodePort把每个Node的IP地址都暴露出去,使用Node自身的公网地址访问。

(2)获得NodePort的端口号

[root@k8s-master1 ~]# kubectl get svc -A
NAMESPACE              NAME                        TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                  AGE
default                kubernetes                  ClusterIP   10.1.0.1       <none>        443/TCP                  3h14m
kube-system            kube-dns                    ClusterIP   10.1.0.10      <none>        53/UDP,53/TCP,9153/TCP   3h14m
kubernetes-dashboard   dashboard-metrics-scraper   ClusterIP   10.1.253.40    <none>        8000/TCP                 96m
kubernetes-dashboard   kubernetes-dashboard        NodePort    10.1.176.109   <none>        443:30586/TCP            96m

 NodePort    10.1.176.109   <none>        443:30586/TCP            96m

10.1.176.109: 集群内部服务的IP地址

443:集群内部服务的端口号

30586: 对外暴露的端口号

IP: 每个节点的IP地址。

(3)在云服务器上的安全组中开放30586端口号。

(4)为远程Web访问创建账号

cat > /root/dashboard-usr.yaml <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
    addonmanager.kubernetes.io/mode: Reconcile
  name: kubernetes-dashboard-admin
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kubernetes-dashboard-admin
  namespace: kube-system
  labels:
    k8s-app: kubernetes-dashboard
    addonmanager.kubernetes.io/mode: Reconcile
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard-admin
  namespace: kube-system
EOF
[root@k8s-master1 ~]# kubectl apply -f dashboard-usr.yaml
serviceaccount/kubernetes-dashboard-admin created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-admin created

(5)获得远程访问的令牌Token

kubectl get secret  -n kube-system |grep dashboard
kubernetes-dashboard-admin-token-8lmm7           kubernetes.io/service-account-token   3      5m19s
[root@k8s-master1 ~]# kubectl -n kube-system describe secrets kubernetes-dashboard-admin-token-8lmm7
Name:         kubernetes-dashboard-admin-token-8lmm7
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: kubernetes-dashboard-admin
              kubernetes.io/service-account.uid: 8ad90e41-949d-4085-9c8c-31ae6e3c8756

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1099 bytes
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IjdhcHBrRU1TUTJlb0NvM0YtYThIQWRZT01mVTR4X3RfZHhzQnQxODQ0UmsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC1hZG1pbi10b2tlbi04bG1tNyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC1hZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjhhZDkwZTQxLTk0OWQtNDA4NS05YzhjLTMxYWU2ZTNjODc1NiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTprdWJlcm5ldGVzLWRhc2hib2FyZC1hZG1pbiJ9.IyigMqSGjlmAaJyBxnylTWtsxXRPzJ2URrKSsJ9_RroY_0VY6fcMmxL253Tv9uAq_0E4-lZFKgdnMPktfiMaSBQ_g9JfIrjBQUKzCq-Yo5vaycVfFn9K0xPvl4iWjy4O3KNSMGibLXFLHHSoHiHNEht2YlqXw0UNNXrrVaunUWTGxlEWkNFiUB06I-EoGB5MIAzbraYq7Akr_MfRJU4RSP7tieGL-lgk17HfciuSV7bvDjL9ZfnWj5oSTjv35wis5nCxAGPrP1sUbRhvwhDyOFqmHr1sxLFnnsYb4YM0P9dYbUrrU5qywp8iGAuv87e-I7Zwap4iXY9b-nUvt2S8qA

(6)通过集群中的任意端口的公网IP+端口号+令牌访问Dashboard

https://47.99.96.250:30586/

忽略警告,继续访问:

 为了安全起见,dashboard采用HTTPS访问,需要提供一个TokenID访问。

选中全部命名空间:

第5章 Dashboard的使用

至此,我们已经创建了K8的集群,并且创建了图形化的管理界面集群进行管理。

后续就可以进行实际微服务的创建和业务的运营和管理了。


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122788745

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[云原生专题-28]:K8S - Kubernetes(K8S)Master集群构建与安装过程详细解读 - Dashboard的安装与访问 的相关文章

随机推荐

  • Android面试题——javaMVC、AndroidMVC

    中的 模型 对象 是应用程序的主体部分 多有业务逻辑都应该放到该层 视图 对象 是应用程序中负责生成用户界面的部分 也是整个 架构中用户唯一可以看到的一层 接受用户的输入 显示处理结果 3 控制器 controller 对象 是根据用户的输
  • python3代码提示怎么设置-PyCharm里面配置第三方库的代码自动提示

    最近开始用 PyCharm 编辑器来编写 python 代码了 安装了 GUI 库 wxPython 之后 发现没有代码提示 写起来很是不爽 几经周折之后发现还是得配置一下 因为自己也找了蛮久 所以记录一下 希望可以帮到打击 其他第三方库的
  • 微信小程序纯css实现刻度尺

    微信小程序纯css实现刻度尺 最近需要实现一个高度定制的刻度尺 但是网上现成的方案却是极少 最终找到了HaoTian的wx scale 但是没有实现竖向的效果而且刻度范围大时 在安卓机上无法渲染完全 找了很久没有找到原因 猜测是canvas
  • 为什么c语言有时候要两个括号,头文件中为什么要用了两个括号?

    在研究MD5算法 发现它的头文件MD5 h有 MD5 context typedef struct UINT4 state 4 state ABCD UINT4 count 2 number of bits modulo 2 64 lsb
  • cisco配置WEB登录的方法

    要启用路由器的 HTTP HTTPS 服务器 请使用下列 Cisco IOS 命令 Router config ip http server Router config ip http secure server Router config
  • 不走弯路,ubuntu系统GPU版本的Pytorch安装

    需先查看电脑是否安装了显卡驱动 nvidia smi 有表格样页面输出则安装了 如果没有 sudo ubuntu drivers devices 查看可安装版本 选择最高安装 sudo apt install nvidia driver 5
  • 用Python爬取了上W表情包。快拿去欢乐斗图吧~

    导语 表情包 是一种利用图片来表示感情的一种方式 表情包是在社交软件活跃之后 形成的一种流行文化 表情包流行于互联网上面 基本人人都会发表情 曾经你是否也有过找不到表情包去应对别人的时候 别担心 今天小编将分享如何用Python爬取批量表情
  • 【核磁共振成像】单射成像和高速脉冲序列

    目录 一 提高成像速度的手段 二 平面回波成像 EPI 序列 三 常用或基本EPI序列 四 EPI变型序列 五 渐开平面螺旋 spiral 扫描序列 六 RARE序列 七 GRASE序列 八 STEAM序列 一 提高成像速度的手段 MRI扫
  • Docker容器安装Mysql和Redis(3)

    前言 容器安装的好处是 相互隔离互不影响 相比于传统的一个linux下安装多个服务 其中一个服务报错可能影响其他服务的问题 现在一个服务就是一个容器互不影响 目录 1 安装MySQL 1 1 拉取镜像 1 2 创建并启动 1 3 外部创建映
  • ES设置常规数据字段属性

    index 是否可被搜索 示例如下 PUT es 0001 mappings properties name type keyword index false POST es 0001 doc name James GET es 0001
  • 两个苹果手机如何同步数据_旧苹果手机数据迁移到新手机教程

    很多知友私信提问如何将旧苹果手机数据迁移到新苹果手机上 由于没有像安卓那样一键操作的软件 所以大部分机友束手无策 今天我在这里给大家介绍几种方法 一 从icloud云备份恢复设备 1 打开您的iPhone 您应该会看到 您好 屏幕 如果您的
  • 为什么国内互联网公司喜欢用Centos而不是Ubuntu?

    几乎所有新手接触Linux时 都会被它的几百个发行版本搞得一头雾水 在众多Linux 版本中 CentOS 和 Ubuntu 可以说是最有名的两个了 而关于这两者的选择也是大家在网络上经常讨论的问题 比如各大网站都有热门问题 为什么国内互联
  • 七、Linux中的进程管理

    七 Linux中的进程管理 7 1 进程和线程定义 程序是静态的代码文件 进程 进程是指程序运行时的形态 是程序的一个副本 进程是有生命周期的 准备期 运行期 终止期 线程 当程序是多任务的 cpu是多核心 多任务同时被每个核心处理 每个核
  • ThinkPHP3.2.3学习笔记1---控制器

    ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的 最早诞生于2006年初 2007年元旦正式更名为ThinkPHP 并且遵循Apache2开源协议发布 ThinkPHP从诞生以来一直秉承简洁实用的设计原则 在保持出色的性
  • Python基本语法

    文章目录 Python 基础语法 行缩进 代码行处理 引用import 输入和输出 Python 基础语法 本文主要讲解Python的特殊的语法 行缩进 Python的代码块不是使用 而是使用缩进 正确示例 if True print An
  • 深入浅出UML类图

    在UML 2 0的13种图形中 类图是使用频率最高的UML图之一 Martin Fowler在其著作 UML Distilled A Brief Guide to the Standard Object Modeling Language
  • 数字电路设计之低功耗设计方法二:memory-partition

    Memory partition是在进行内存寻址进行读或者写数据的时候 我们寻找地址一般是全部比较一遍 但是我们可以就是先比较第一位 然后在比较接下来的位数 这样就减少了近一般的内存访问次数 大大降低了功耗 在这里 我定义了地址空间为十六
  • QT元对象

    1 QT元对象系统简介 Qt的信号槽和属性系统具有运行时查询对象信息的能力 但是C 查询对象信息的能力比较有限 仅仅能够通过RTTI的typeid和dynamic cast关键字来实现 QT拓展了C 的这种能力 但是没有采用C 标准库的RT
  • 数据库系统原理(二)--ER模型

    向关系模式转换 实体类型的转换 将每个实体类型转换成一个关系模式 实体的属性即为关系的属性 实体标识符即为关系的键 联系类型的转换 1 实体间的联系是1 1 可以在两个实体类型转换成两个关系模式中的任意一个关系模式的属性中加入另一个关系模式
  • [云原生专题-28]:K8S - Kubernetes(K8S)Master集群构建与安装过程详细解读 - Dashboard的安装与访问

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122788745 目录 第1章 Das