Kubernetes Dashboard安装部署

2023-09-13 22:24:09

1. 下载Dashboard 部署文件

#创建存放目录
mkdir dashboard
cd dashboard/
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

2. 修改yaml配置文件

修改kubernetes-dashboard的service,使用NodePort方式暴露端口。

vi recommended.yaml
#################修改内容#######################
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  ports:
    - port: 443
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard
  type: NodePort          #添加这一行,注意缩进对齐
  #################修改内容#######################

3. 应用安装,查看pod和svc

#安装
kubectl apply -f recommended.yaml
#查看pod和svc
kubectl get pod,svc -o wide -n kubernetes-dashboard
#######################显示内容##################################
NAME                                             READY   STATUS              RESTARTS   AGE   IP       NODE    NOMINATED NODE   READINESS GATES
pod/dashboard-metrics-scraper-5cb4f4bb9c-mg569   0/1     ContainerCreating   0          9s    <none>   node1   <none>           <none>
pod/kubernetes-dashboard-6967859bff-2968p        0/1     ContainerCreating   0          9s    <none>   node1   <none>           <none>

NAME                                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE   SELECTOR
service/dashboard-metrics-scraper   ClusterIP   10.100.129.191   <none>        8000/TCP        9s    k8s-app=dashboard-metrics-scraper
service/kubernetes-dashboard        NodePort    10.106.130.53    <none>        443:31283/TCP   9s    k8s-app=kubernetes-dashboard
#####################显示内容###################################

使用所查看service所提供的端口访问Dashboard,此次部署的访问链接为https://192.168.3.101:31283/

4. 创建dashboard服务账户

#创建一个admin-user的服务账户并与集群绑定
vi dashboard-adminuser.yaml
##################内容####################
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard

---

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard
    ##################内容####################
  ---
   #执行生效
  kubectl apply -f dashboard-adminuser.yaml

5. 创建admin-user用户的登录密钥

vi admin-user-token.yaml
##################内容####################
apiVersion: v1
kind: Secret
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
  annotations:
    kubernetes.io/service-account.name: "admin-user"
type: kubernetes.io/service-account-token
  ##################内容####################
   #执行生效
  kubectl apply -f admin-user-token.yaml

6. 登录

6.1 使用token登录

获取登录token,并将token输入dashboard登录界面,进行登录,登录后的界面如下图
在这里插入图片描述

(1) 短期token

#获取token
kubectl -n kubernetes-dashboard create token admin-user
#建议新建一个admin-user.token文件,将其保存

(2) token长期有效

kubectl get secret admin-user -n kubernetes-dashboard -o jsonpath={".data.token"} | base64 -d

6.2 使用 Kubeconfig 文件登录

 #定义 token 变量
 DASH_TOCKEN=$(kubectl get secret admin-user -n kubernetes-dashboard -o jsonpath={".data.token"} | base64 -d)
 #设置 kubeconfig 集群条目
 kubectl config set-cluster kubernetes --server=10.10.3.101:6433 --kubeconfig=/root/dashbord-admin.conf
 #设置 kubeconfig 用户条目
 kubectl config set-credentials admin-user --token=$DASH_TOCKEN --kubeconfig=/root/dashbord-admin.conf
 #设置 kubeconfig 上下文条目
 kubectl config set-context admin-user@kubernetes --cluster=kubernetes --user=admin-user --kubeconfig=/root/dashbord-admin.conf
 #设置 kubeconfig 当前上下文
 kubectl config use-context admin-user@kubernetes  --kubeconfig=/root/dashbord-admin.conf

将生成的dashbord-admin.conf文件放到本地主机上,登录时选择Kubeconfig选项,选择 kubeconfig 文件登录即可。


登录Dashboard 后,若存在cpu使用率和内存使用率等监控指标不显示的情况,需安装metrics-server。
在这里插入图片描述

7.安装metrics-server

下载部署文件

wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml -O metrics-server-components.yaml

修改yaml文件中的Deployment内容

---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    k8s-app: metrics-server
  name: metrics-server
  namespace: kube-system
spec:
  selector:
    matchLabels:
      k8s-app: metrics-server
  strategy:
    rollingUpdate:
      maxUnavailable: 0
  template:
    metadata:
      labels:
        k8s-app: metrics-server
    spec:
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=4443
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
        - --kubelet-use-node-status-port
        - --metric-resolution=15s
        - --kubelet-insecure-tls  #添加
        image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.6.4 #修改
        imagePullPolicy: IfNotPresent
  #执行生效
  kubectl apply -f admin-user-token.yaml

查看metrics-server的pod状态

kubectl get pods --all-namespaces | grep metrics

等待一些时间,查看查看各类监控图像已成功显示。
在这里插入图片描述

更多推荐

python每日一题(模拟用户登录验证)

1、题目预先设定正确用户名与密码,用来验证用户是否登录成功。第一次:①输入用户名与密码,如果用户名与密码正确,则提示登录成功;②如果用户名错误(不管密码是否正确),则需要重新输入用户名与密码验证,并提示用户名或密码错误;③如果用户名正确,密码错误,打印密码错误,且仅需要输入密码验证,且验证次数仅剩与2次,若在2次验证机

2023华为杯研究生数学建模E题思路代码分析

完整的思路代码查看文末名片血肿扩张风险相关因素探索建模。请根据“表1”(字段:入院首次影像检查流水号,发病到首次影像检查时间间隔),“表2”(字段:各时间点流水号及对应的HM_volume),判断患者sub001至sub100发病后48小时内是否发生血肿扩张事件。结果填写规范:1是0否,填写位置:“表4”C字段(是否发

netty报文解析之粘包半包问题

粘包问题Netty的粘包问题是指在网络传输过程中,由于TCP协议本身的特点,导致发送方发送的若干个小数据包被接收方合并成了一个大数据包。这种情况称为粘包。TCP协议是面向流的协议,没有数据边界,发送方发送的数据可能会被分成多个数据包进行发送,接收方则需要将这些数据包重新组装为原始数据。当接收方处理不当时,就可能会发生粘

【JavaWeb】你这么厉害,知道RBAC权限模型和ABAC权限模型吗?

文章目录一.RBAC权限模型1.RBAC的组成2.RBAC模型分类2.1.基本模型RBAC02.2.角色分层模型RBAC12.3.角色限制模型RBAC22.4.统一模型RBAC33.RBAC0模型核心表结构3.1.表结构设计3.2.模块划分4.基于RBAC的延展—用户组二.ABAC权限模型(基于Java讲解)1.ABA

人机中的事实与价值时空、排序

人机结合智能与事实价值融合分析确实是未来解决复杂疑难问题的基本策略之一。该策略利用人类智慧和机器智能相结合,结合有效的事实和价值分析方法,以更全面、准确、高效地解决问题。通过人机结合,可以充分发挥人类的主观能动性、判断力和创造力,同时借助机器的强大计算和数据处理能力,提供更深入、广泛的信息搜索、筛选和分析。这种结合能够

7.2、如何理解Flink中的水位线(Watermark)

目录0、版本说明1、什么是水位线?2、水位线使用场景?3、设计水位线主要为了解决什么问题?4、怎样在flink中生成水位线?4.1、自定义标记Watermark生成器4.2、自定义周期性Watermark生成器4.3、内置Watermark生成器-有序流水位线生成器4.4、内置Watermark生成器-乱序流水位线生成

基于springboot广场舞团系统springboot16

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路,向着优秀程序员前行!🍅更多优质项目👇🏻👇🏻可点击下方获取🍅文章底部或评论区获取🍅Java项目精品实

Linux安装mysql数据库并实现主从搭建

一.环境说明【环境说明】:192.168.110.161mysql-master##网络配置到位,防火墙关闭,selinux关闭192.168.110.162mysql-slave##网络配置到位,防火墙关闭,selinux关闭两台主机,操作系统是centos7,提前网络配置好,关闭防火墙,selinux,修改主机名二

esbuild中文文档-路径解析配置项(Path resolution - External、Main fields)

文章目录路径解析配置项Pathresolution外部模块External主字段Mainfields对于包的开发者结语哈喽,大家好!我是「励志前端小黑哥」,我带着最新发布的文章又来了!老规矩,小手动起来~点赞关注不迷路!esbuild简单介绍esbuild为了突破了JavaScript语言的瓶颈,采用了Go语言编写,构

Vue 如何监听 localstorage的变化

一.说明在日常开发中,我们经常使用localStorage来存储一些变量。这些变量会存储在浏览中。对于localStorage来说,即使关闭浏览器,这些变量依然存储着,方便我们开发的时候在别的地方使用。二.localStorage的使用存储值:window.localStorage.setItem(‘键名’,值)读取值

紫禁之巅-Unity游戏开发教程:勇者斗恶龙之魔法石

说明开设了一个unity游戏开发课程,可以帮助对游戏开发有兴趣的小伙伴学习Unity游戏开发的知识和技术,课程地址第一节课的课件是游戏工程,第二节的课件是大纲,和文章内相同,其它章节的课件和第一节课的相同,不需要重复下载课程大纲课程简介开设课程是为了帮助对游戏开发感兴趣的小伙伴掌握游戏开发的思路、方法、技术。为了帮助学

热文推荐