k8s dashboard_【大强哥-k8s从入门到放弃02】Kubernetes1.17部署Dashboard2.0

1023a5b0d2d02381eee41c58f1d49676.png

号外号外,后面所有提升视频都会更新到知乎和B站上去,不会直接发群里了,哈哈,能看懂这句话的我都认识,大家可以先关注一下,我知乎上的所有文档也会录成视频

更多视频详见 杨哥天云:https://space.bilibili.com/514805677

我马上就开B站账号,录制点儿走心的视频,呼呼

开始正题

注:因为本次部署在Centos8.1上,Dashboard必须使用2.0-rc6以上版本,rc6以下测试部署不成功

525b67c4ef4f3505a3ba9d22390e3fe7.png

一、Dashboard介绍

Dashboard 是基于网页的 Kubernetes 用户界面。您可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。您可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源(如 Deployment,Job,DaemonSet 等等)。例如,您可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。

二、获取并修改Yaml文件

GitHub上目前最新版本是dashboard v2.0.0-rc6

项目地址 https://github.com/kubernetes/dashboard/releases
# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml

修改service通过NodePort方式访问K8S Dashboard

# vim recommended.yaml

应用配置文件

# kubectl apply -f recommended.yaml

查看pod和service

[root@master dashboard1]# kubectl get pod -o wide -n kubernetes-dashboard
NAME                                         READY   STATUS    RESTARTS   AGE   IP            NODE    NOMINATED NODE   READINESS GATES
dashboard-metrics-scraper-7b8b58dc8b-29wxq   1/1     Running   0          19m   10.244.2.18   node2   <none>           <none>
kubernetes-dashboard-755dcb9575-fj8jl        1/1     Running   0          19m   10.244.1.28   node1   <none>           <none>
[root@master dashboard1]# kubectl get svc -o wide -n kubernetes-dashboard
NAME                        TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)         AGE   SELECTOR
dashboard-metrics-scraper   ClusterIP   10.98.53.94    <none>        8000/TCP        19m   k8s-app=dashboard-metrics-scraper
kubernetes-dashboard        NodePort    10.109.85.22   <none>        443:30001/TCP   19m   k8s-app=kubernetes-dashboard

访问Dashboard

注:通过Chrome、IE、Safari可能无法访问这个页面,这里使用火狐访问

火狐浏览器访问

db85f6084f9c5371efc32cad70953306.png

创建一个dashboard用户

# vim create-admin.yaml

获取Token

[root@master dashboard1]# kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
Name:         admin-user-token-z4jp6
Namespace:    kubernetes-dashboard
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: admin-userkubernetes.io/service-account.uid: 349285ce-741d-4dc1-a600-1843a6ec9751Type:  kubernetes.io/service-account-tokenData
====
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6InY5M1pSc3RpejBVZ0x6LTNSbWlCc2t5b01ualNZWnpYMVB5YzUwNmZ3ZmsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLXo0anA2Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIzNDkyODVjZS03NDFkLTRkYzEtYTYwMC0xODQzYTZlYzk3NTEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.JtCa0VC7tYtIGLWlwSKUwqSL0T8eRvZ8jk_AUxB4Atmi5PjF9IjAHNNwGS3HaTL3Q86fCI8MvYGf3Eplk9X-n-g9WsrFIxXxa0wGJxZp0d8R78A6vuN7I7Zd5CeQm_O2ycTUuQhYnSZlNplF8X033QOfjOoFnKKevbn2094XXWWZuAsT9haGnZ8BX92DmYzsaMyLesfv7ZziJD80KgSQ8_jtb0n55zw5cedYTsRCZgofJ_o9U5SUW3I0AXG-vVhI28m0sMBjZkuMppfB4eMLnSDH-XAw3Gvwe_2NOLfS4hBTkYu7gJket-gif9Cs8Ybkzvf2qXdZW5fydZUuSylafg
ca.crt:     1025 bytes
namespace:  20 bytes

登录dashboard

1239df313f98eac1a0044dea73c39597.png

登陆后界面

57ed69164750cd539d7067ff6249dda8.png

三、使用Dashboard

在Dashboard中,我们之前通过kubectl所做的操作大部分都可以可视化操作

比如

  1. 可以对Deployment做伸缩

fac395e8a898a1e62c5f01c048630586.png

2. 执行命令以及日志追踪

4e14d9457ad7e3e28f8d3a787f4b3301.png

3. 编辑资源的yaml文件

4f6833f828a786796592555cca0f8857.png

4. 导入yaml文件创建,更新资源等等

你都看到这里了,不点个赞么,不关注一下么,不转发一下么

四、自己制作证书

1、删除上面创建的各种资源

# kubectl  delete -f create-admin.yaml 
# kubectl  delete -f dashboard-admin-bind-cluster-role.yaml 
# kubectl  delete -f recommended.yaml

2、修改recommended.yaml文件

#因为我们要手动创建名称空间,把这里的创建删除掉,不然如果出了错用yaml删除ns的时候也会把里面的资源全部删掉
#apiVersion: v1
#kind: Namespace
#metadata:
#  name: kubernetes-dashboard---
#增加直接访问端口
kind: Service
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:type: NodePort #增加ports:- port: 443targetPort: 8443nodePort: 30008 #增加selector:k8s-app: kubernetes-dashboard---
#注释掉kubernetes-dashboard-certs对象声明
#apiVersion: v1
#kind: Secret
#metadata:
#  labels:
#    k8s-app: kubernetes-dashboard
#  name: kubernetes-dashboard-certs
#  namespace: kubernetes-dashboard
#type: Opaque---template:metadata:labels:k8s-app: kubernetes-dashboardspec:containers:- name: kubernetes-dashboardimage: kubernetesui/dashboard:v2.0.0-rc6imagePullPolicy: IfNotPresentports:- containerPort: 8443protocol: TCPargs:#- --auto-generate-certificates  ##注释掉自动生成证书- --namespace=kubernetes-dashboard# Uncomment the following line to manually specify Kubernetes API server Host# If not specified, Dashboard will attempt to auto discover the API server and connect# to it. Uncomment only if the default does not work.# - --apiserver-host=http://my-address:port# 添加我们自己生成的证书名称- --tls-cert-file=/dashboard.crt- --tls-key-file=/dashboard.key- --token-ttl=3600

3、创建证书

# mkdir /root/certs
# cd /root/certs/创建key文件
# openssl genrsa -out dashboard.key 2048证书请求
# openssl req -new -out dashboard.csr -key dashboard.key -subj '/CN=192.168.1.201'自签证书
# openssl x509 -req -days 365 -in dashboard.csr -signkey dashboard.key -out dashboard.crt 创建命名空间
# kubectl create namespace kubernetes-dashboard创建kubernetes-dashboard-certs对象
# kubectl create secret generic kubernetes-dashboard-certs --from-file=/root/certs/dashboard.key --from-file=/root/certs/dashboard.crt -n kubernetes-dashboard

4、安装 Dashboard

创建账号绑定权限
# vim  create-admin.yaml
apiVersion: v1
kind: ServiceAccount
metadata:name: admin-usernamespace: kubernetes-dashboard---apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: admin-user
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
subjects:
- kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboard安装Dashboard
# kubectl create -f  ~/recommended.yaml检查结果
# kubectl get pods -A  -o wide
# kubectl get service -n kubernetes-dashboard  -o wide

5、查看用户Token

# kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

6、访问

57ed69164750cd539d7067ff6249dda8.png

五、安装 metrics-server 插件

1、简单介绍

Heapster已经被Metrics-Server取代,如果使用Kubernetes的自动扩容功能的话,那首先得有一个插件,然后该插件将收集到的信息(cpu、memory..)与自动扩容的设置的值进行比对,自动调整pod数量。关于该插件,在kubernetes的早些版本中采用的是heapster,1.13版本正式发布后,丢弃了heapster,官方推荐采用metrics-sever。

2、下载相关yaml文件

https://github.com/kubernetes-incubator/metrics-server

[root@k8s-master ~]# git clone https://github.com/kubernetes-incubator/metrics-server.git
[root@k8s-master ~]# cd metrics-server/deploy/1.8+/
[root@k8s-master 1.8+]# ll
总用量 28
-rw-r--r-- 1 root root 384 4月  28 09:46 aggregated-metrics-reader.yaml
-rw-r--r-- 1 root root 308 4月  28 09:46 auth-delegator.yaml
-rw-r--r-- 1 root root 329 4月  28 09:46 auth-reader.yaml
-rw-r--r-- 1 root root 298 4月  28 09:46 metrics-apiservice.yaml
-rw-r--r-- 1 root root 815 4月  28 09:46 metrics-server-deployment.yaml
-rw-r--r-- 1 root root 291 4月  28 09:46 metrics-server-service.yaml
-rw-r--r-- 1 root root 502 4月  28 09:46 resource-reader.yaml

3、修改安装脚本

vim metrics-server-deployment.yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:name: metrics-servernamespace: kube-system
---
apiVersion: apps/v1
kind: Deployment
metadata:name: metrics-servernamespace: kube-systemlabels:k8s-app: metrics-server
spec:selector:matchLabels:k8s-app: metrics-servertemplate:metadata:name: metrics-serverlabels:k8s-app: metrics-serverspec:serviceAccountName: metrics-servervolumes:# mount in tmp so we can safely use from-scratch images and/or read-only containers- name: tmp-diremptyDir: {}containers:- name: metrics-serverimage: mirrorgooglecontainers/metrics-server-amd64:v0.3.6  # 修改镜像下载地址args:        # 添加以下内容- --cert-dir=/tmp- --secure-port=4443- --kubelet-insecure-tls- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostnameports:- name: main-portcontainerPort: 4443protocol: TCPsecurityContext:readOnlyRootFilesystem: truerunAsNonRoot: truerunAsUser: 1000imagePullPolicy: AlwaysvolumeMounts:- name: tmp-dirmountPath: /tmp

5、执行安装脚本并产看结果

#安装
[root@k8s-master 1.8+]# kubectl create -f 。#1-2分钟后查看结果
[root@k8s-master 1.8+]# kubectl top nodes
NAME         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
k8s-master   256m         12%    2002Mi          52%       
k8s-node1    103m         5%     1334Mi          34%       
k8s-node2    144m         7%     1321Mi          34%

再回到dashboard界面可以看到CPU和内存使用情况了

8313253af521c0a4ef426393349d375a.png

你都看完了,不点个赞么,不关注一下么,不转发一下么

【大强哥-k8s从入门到放弃01】Kubernetes容器编排入门 - 云计算大强哥的文章 - 知乎 https://zhuanlan.zhihu.com/p/112963721

Centos8.1部署kubernetes1.17 - 云计算大强哥的文章 - 知乎 https://zhuanlan.zhihu.com/p/112834020

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434307.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Andoid 采用ListView三种显示数据列表

Android系统中列表形式的显示方式应该是我们最熟悉不过的界面了&#xff0c;例如通讯录、通话记录、信息列表等等&#xff0c;例如下面的形式&#xff1a; 我们在开发项目需要用到这种形式显示信息时除了调用系统给我们提供的ListView控件以外我们还可以自定义该控件&#xff0…

url采集器_Linux「第三节」-centos7.5部署数据采集器Telegraf

Telegraf采集器采集数据后&#xff0c;会存储到influxdb数据库&#xff0c;然后grafana从influxdb读取数据&#xff0c;在grafana面板上展示&#xff0c;整体的流程就是这样。下面就演示下Telegraf、influxdb、grafana相互间的配置与衔接下载Telegrafwget https://dl.influxdat…

西门子主程序调用子程序_S7200Smart 子程序局部变量使用教程

全新的 S7-200 SMART 带来两种不同类型的 CPU 模块&#xff0c;标准型和经济型&#xff0c;全方位满足不同行业、不同客户、不同设备的各种需求。标准型作为可扩展 CPU 模块&#xff0c;可满足对 I/O 规模有较大需求&#xff0c;逻辑控制较为复杂的应用 &#xff1b;而经济型 C…

电脑怎么结束进程_深刻了解windows系统的任务管理器,电脑高手的成长之路

伙伴们我们每天都在用电脑&#xff0c;电脑和手机已经离不开了&#xff0c;可以说手机和电脑就是我们的左膀右臂。我们用电脑的时候&#xff0c;如果电脑卡了或者反应慢了&#xff0c;我们都会想到吧任务管理器调出来看看&#xff0c;可以说调出任务管理器就像医生看病一样&…

手机连接投影机的步骤_家用投影仪如何安装 家用投影仪安装方法【步骤详解】...

家用投影仪怎么安装 根据安装方式的不同&#xff0c;投影仪可以分为桌式正投、吊顶正投、桌式背投、吊顶背投几种。方便随时随地使用的便携式投影仪一般是桌式正投&#xff0c;这种投影方法受环境光影响较大 但如果装修时就设计成吊顶正投方式&#xff0c;不仅在性价比方面更加…

win7锁屏时间怎么设置_电脑锁屏时间怎么设置

以WIN10系统为例演示。1/3打开“控制面板”&#xff1b;点击“电源选项”2/3点击“更改计划设置”&#xff1b;设置锁屏时间3/3点击“保存修改”即可

Ajax原理

引用&#xff1a;http://www.cnblogs.com/xugang/archive/2007/10/16/925993.html 看了“坐断东南 笑煞之”的那篇 .net组件开发系列(二)之武林系列 太极拳 开发ajax控件 总有一种意犹味尽的感觉。没有想到 金色海洋&#xff08;jyk&#xff09;竟“晕了”&#xff0c;我感觉写…

cdh界面 hue 配置hbase_海量数据存储技术之HBase:使用HBase Shell操纵HBase

Apache HBase Shell是JRuby的IRB&#xff0c;并在此基础上加入了HBase特有的命令。JRuby是用Java实现的Ruby解释器。通过JRuby&#xff0c;你可以在JVM上直接运行Ruby程序&#xff0c;调用Java的类库。IRB即interactive ruby&#xff0c;交互式Ruby。运行HBase Shell&#xff1…

安卓 图像清晰度识别_智能车牌识别系统的常见故障和解决方法

车牌号是车辆的唯一身份标志&#xff0c;它的特殊性与重要性从而决定了车牌识别系统在智慧城市交通管理系统中成为不可或缺的重要组成部分。下面智能车牌识别系统厂家畅荧智能科技将详细为您介绍一些智能车牌识别系统常见的故障问题和对应的解决方法。智能车牌识别系统的常见故…

post postman 传递数组对象_如何使用postman做接口测试

一&#xff0c;接口测试是什么什么是接口测试&#xff0c;不说广泛的概念&#xff0c;直接电脑打开浏览器&#xff0c;进入开发者工具(F12)随意进入一些网站可以看到下面左侧栏出现了一系列的数据&#xff1a;上面条数据都是一个单独的接口&#xff0c;点击单个接口&#xff0c…

形位公差符号大全_玩转CAD快捷键(大全),一篇文章就够了

CAD快捷键命令大全符号键&#xff08;CTRL开头&#xff09;CTRL1 PROPCLOSEOROPEN 对象特性管理器CTRL2或4 ADCENTER 设计中心CTRL3 CTOOLPALETTES 工具选项板CTRL8或QC QuickCalc 快速计算器控制键CTRLA AI_SELALL 全部选择CTRLC或CO/CP COPYCLIP或COpy 复制CTRLD或F6 COORDIN…

k近邻算法_K近邻(knn)算法是如何完成分类的?

摘要&#xff1a;K近邻算法是机器学习中的一个非常基础的算法。本文通过自生成数据&#xff0c;通过绘图的方式演示KNN算法的思路&#xff0c;让你不看数学公式就看了解什么是KNN算法。关键词&#xff1a;KNN算法1 生成一个二分类的数据集本文很多内容参考文献[1]。先生成一个两…

登录不上_《盗贼之海》登录不上?还在傻傻等待,快来让我教教你

大家都对这款海盗题材的游戏《盗贼之海》有兴趣了吧&#xff0c;相信大家都入手了它&#xff0c;但是也有很多朋友在入手后遇见了很多问题&#xff0c;别怕&#xff0c;今天干货来了&#xff0c;手把手教你。保证你流畅游戏&#xff0c;快人一步。我看见很多朋友都在问&#xf…

苹果X可以升级5G吗_苹果x可以用5g网络吗

随着5G网络的逐渐商用&#xff0c;越来越多5G原型机和量产机都即将推出&#xff0c;那么苹果iPhone X能够支持5G网络吗&#xff1f;下面就为您带来苹果iPhone x可以用5G网络吗的相关介绍&#xff0c;希望以上的介绍能够帮助到您。苹果x可以用5g网络吗1、iPhone X并不支持5G网络…

提交显示成功但是没有看到文件_如何向RTThread提交一个BSP?

RT-Thread今天的快速发展和所取得成绩&#xff0c;离不开所有开发者的持续贡献和社区小伙伴的竭力支持。一、前言今年6月&#xff0c;我在一款智能混合型的FPGA芯片上&#xff0c;完成了RT-Thread的移植&#xff0c;并向RT-Thread提交了一个完整的BSP&#xff0c;后续又根据审查…

WinForm中使用WPF的控件

在WinForm中可以使用WPF中的控件&#xff0c;或者由WPF创建的自定义控件&#xff1b; 步骤1&#xff1a;创建WinForm工程&#xff1b; 步骤2&#xff1a;在WinForm工程的解决方案资源管理器中&#xff0c;在刚刚创建的WinForm解决方案中新建或者添加现有的WPF用户控件工程&…

docker php composer 使用_「PHP编程」如何使用Docker制作自己的LNMP/LAMP镜像

LNMP和LAMP是PHP常用的两种运行环境&#xff0c;L代表Linux&#xff0c;N代表Nginx&#xff0c;A代表Apache&#xff0c;M代表Mysql&#xff0c;P代表PHP。在文章《「PHP编程」安装开发环境太烦&#xff1f;告诉你几个简单方法&#xff0c;分分钟搞定》中我们介绍了&#xff0c…

中天数相减获得差_Power BI 了解DAX中LASTDATE和MAX之间的区别

许多刚开始使用DAX的小伙伴在使用LASTDATE搜索某个时间段内的最后日期。或者他们使用NEXTDAY检索给定日期之后的日期。尽管这些函数可以实现它们所承诺的功能&#xff0c;但它们并不打算在简单的表达式中使用。相反&#xff0c;它们是设计用于时间智能计算的表函数。错误地使用…

python gif_python 将png图片格式转换生成gif动画

先看知乎上面的一个连接 用Python写过哪些【脑洞大开】的小工具&#xff1f; 这个哥们通过爬气象网站的气象雷达图&#xff0c;生成一个gif的动态图。非常有趣且很实用&#xff0c;那咱也实现下。 我们先实现一个从GIF提取帧的代码 我们这有个gif代码如下&#xff1a; from PIL…

HTTP代理原理以及HTTP隧道技术

通过HTTP协议与代理服务器建立连接&#xff0c;协议信令中包含要连接到的远程主机的IP和端口号&#xff0c;如果有需要身份验证的话还需要加上授权信息&#xff0c;服务器收到信令后首先进行身份验证&#xff0c;通过后便与远程主机建立连接&#xff0c;连接成功之后会返回给客…