前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >容器编排引擎Kubernetes 04——部署Dashboard

容器编排引擎Kubernetes 04——部署Dashboard

原创
作者头像
用户8100582
修改2024-02-02 19:36:42
5930
修改2024-02-02 19:36:42
举报
文章被收录于专栏:微服务化

系列目录

  1. 容器编排引擎Kubernetes 01——一文带你认识K8S
  2. 容器编排引擎Kubernetes 02——k8s安装配置
  3. 容器编排引擎Kubernetes 03——初始化集群
  4. 容器编排引擎Kubernetes 04——部署Dashboard
  5. 容器编排引擎Kubernetes 05——命名空间和POD
  6. 容器编排引擎Kubernetes 06——kubectl常用命令
  7. 容器编排引擎Kubernetes 07——Deployment介绍及使用
  8. 容器编排引擎Kubernetes 08——Service介绍及使用
  9. 容器编排引擎Kubernetes 09——资源文件的介绍及使用
  10. 容器编排引擎Kubernetes 10——在k8s集群中部署项目

1 dashboard介绍

dashboard是K8S的可视化界面,通过前端界面对K8S集群进行管理。

可在如下页面,查询K8S与dashboard版本兼容性:

https://github.com/kubernetes/dashboard

因为前边K8S安装的是V1.23版本,所以这里需要选择能与V1.23的K8S兼容的dashboard版本。从页面上可以找到能兼容的dashboard最新的版本为V2.5.1。

2 下载配置文件

进入到master服务器,下载dashboard对应版本的 recommended.yaml 文件到 /usr/local/ 目录下。yaml文件的链接在版本下已经提供。

为了稳妥起见,可以把文件下载和执行指令分开来做。

代码语言:shell
复制
cd /usr/local/
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml

因为github是外网,在服务器中可能访问不到,需要先在 /etc/hosts 里配置域名和IP地址的映射关系,可以在 https://www.ipaddress.com/ 网站通过域名raw.githubusercontent.com查询到该网址的IP,为:

任选一个添加到hosts中,如将185.199.108.133 raw.githubusercontent.com添加到hosts文件,如果下载失败,可以将IP用其余几个进行替换。

当hosts配置生效后,文件即可以正常下载。

3 生效yaml文件,创建POD

进入到 recommended.yaml 文件所在目录,执行如下指令

代码语言:shell
复制
kubectl apply -f recommended.yaml

查看容器下载状态,经过一段时间等待后,所有状态都是running。

4 查看POD及服务

4.1 查看命名空间下所有POD

查看 kubernetes-dashboard 这个命名空间下的所有pod

kubectl get pods -n kubernetes-dashboard

4.2 查看命名空间下所有服务

查看 kubernetes-dashboard 命名空间下的所有服务

kubectl get svc -n kubernetes-dashboard

在上图中 TYPE 显示为 ClusterIP,即从集群内部访问的地址,集群外部通过该IP是无法访问的,即使用浏览器不能访问到。因此需要修改 TYPE 类型为 NodePort,才能供外部查看。

5 修改dashboard服务

5.1 删除服务

在修改dashboard服务时,需要先删除原来的服务。删除服务时,需要指定命名空间。

kubectl delete service kubernetes-dashboard --namespace=kubernetes-dashboard

5.2 创建服务

首先,创建新的服务配置文件 dashboard-svc.yaml

代码语言:yaml
复制
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard

生效ymal文件,创建新服务

kubectl apply -f dashboard-svc.yaml

再次查看服务状态

kubectl get svc -n kubernetes-dashboard

服务的 TYPE 已经修改为了 NodePort 类型,同时 PORT 列增加了外部访问时的端口 31681。

6 创建管理员角色

6.1 创建配置

创建配置文件, dashboard-svc-account.yaml

代码语言:yaml
复制
apiVersion: v1
kind: ServiceAccount
metadata:
  name: dashboard-admin
  namespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: dashboard-admin
subjects:
  - kind: ServiceAccount
    name: dashboard-admin
    namespace: kube-system
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io

生效yaml文件

kubectl apply -f dashboard-svc-account.yaml

6.2 获取token

通过以下指令生成原始token信息

kubectl get secret -n kube-system | grep admin | awk '{print $1}'

6.3 获取加密token

根据上一步生成原始token信息后,将其 (dashboard-admin-token-jsczr)填入下边的指令

kubectl describe secret dashboard-admin-token-jsczr -n kube-system | grep '^token' | awk '{print $2}'

指令执行后,生成可在浏览器访问k8s的加密token信息。

将其记录下来,方便以后每次访问K8S时在 dashboard 登录页面上输入。

7 登录dashboard

在浏览器中访问dashboard:输入master服务器的IP及dashboard服务对外提供的端口,即:

192.168.137.3:31681

协议默认使用的是https,如果直接输入上边的url会出现如下提示

修改为https后,页面如下

选择token,并将上面生成的加密token信息复制进去,点击登录,即可进入到K8S管理界面。

大功告成!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 系列目录
  • 1 dashboard介绍
  • 2 下载配置文件
  • 3 生效yaml文件,创建POD
  • 4 查看POD及服务
    • 4.1 查看命名空间下所有POD
      • 4.2 查看命名空间下所有服务
      • 5 修改dashboard服务
        • 5.1 删除服务
          • 5.2 创建服务
          • 6 创建管理员角色
            • 6.1 创建配置
              • 6.2 获取token
                • 6.3 获取加密token
                • 7 登录dashboard
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档