dashboard有什么用?怎么安装和配置dashboard?-创新互联
一、k8s的UI访问界面-dashboard
在dashboard中,虽然可以做到创建、删除、修改资源等操作,但通常情况下,我们会把它当做健康k8s集群的软件。
成都创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为潮安企业提供专业的成都网站设计、网站制作,潮安网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。作为Kubernetes的Web用户界面,用户可以通过Dashboard在Kubernetes集群中部署容器化的应用,对应用进行问题处理和管理,并对集群本身进行管理。通过Dashboard,用户可以查看集群中应用的运行情况,同时也能够基于Dashboard创建或修改部署、任务、服务等Kubernetes的资源。通过部署向导,用户能够对部署进行扩缩容,进行滚动更新、重启Pod和部署新应用。当然,通过Dashboard也能够查看Kubernetes资源的状态。
1、Dashboard提供的功能
在默认情况下,Dashboard显示默认(default)命名空间下的对象,也可以通过命名空间选择器选择其他的命名空间。在Dashboard用户界面中能够显示集群大部分的对象类型。
1)集群管理
集群管理视图用于对节点、命名空间、持久化存储卷、角色和存储类进行管理。 节点视图显示CPU和内存的使用情况,以及此节点的创建时间和运行状态。 命名空间视图会显示集群中存在哪些命名空间,以及这些命名空间的运行状态。角色视图以列表形式展示集群中存在哪些角色,这些角色的类型和所在的命名空间。 持久化存储卷以列表的方式进行展示,可以看到每一个持久化存储卷的存储总量、访问模式、使用状态等信息;管理员也能够删除和编辑持久化存储卷的YAML文件。
2) 工作负载
工作负载视图显示部署、副本集、有状态副本集等所有的工作负载类型。在此视图中,各种工作负载会按照各自的类型进行组织。 工作负载的详细信息视图能够显示应用的详细信息和状态信息,以及对象之间的关系。
3) 服务发现和负载均衡
服务发现视图能够将集群内容的服务暴露给集群外的应用,集群内外的应用可以通过暴露的服务调用应用,外部的应用使用外部的端点,内部的应用使用内部端点。
4) 存储
存储视图显示被应用用来存储数据的持久化存储卷申明资源。
5) 配置
配置视图显示集群中应用运行时所使用配置信息,Kubernetes提供了配置字典(ConfigMaps)和秘密字典(Secrets),通过配置视图,能够编辑和管理配置对象,以及查看隐藏的敏感信息。
6) 日志视图
Pod列表和详细信息页面提供了查看日志视图的链接,通过日志视图不但能够查看Pod的日志信息,也能够查看Pod容器的日志信息。通过Dashboard能够根据向导创建和部署一个容器化的应用,当然也可以通过手工的方式输入指定应用信息,或者通过上传YAML和JSON文件来创建和不受应用。
2、下载所需yaml文件和镜像
[root@master https]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml
[root@master https]# docker pull kubernetesui/dashboard:v2.0.0-rc5
3、修改 recommended.yaml
[root@master https]#vim recommended.yaml
---
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort #添加40
ports:
- port: 443
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
执行一下
[root@master https]# kubectl apply -f recommended.yaml
查看一下
[root@master https]# kubectl get svc -n kubernetes-dashboard
3、浏览器访问https://192.168.1.21:32306
PS:如果是使用的旧版本的dashboard, 使用Google浏览器登录,可能是不成功的,需要换成其他的浏览器,比如:火狐。
4、基于token的方法登录dashboard
<1>创建一个dashboard的管理用户
[root@master https]# kubectl create serviceaccount dashboard-admin -n kube-system
<2>绑定用户为集群管理用户
[root@master https]# kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
<3>获取Token
[root@master https]# kubectl get secrets -n kube-system | grep dashboard-admin
//先得到Token的名称
[root@master https]# kubectl describe secrets -n kube-system dashboard-admin-token-62bh9
//查看上述得到的secret资源的详细信息,会得到token
<4>在浏览器上使用token登录。
创建一个资源
查看是否创建成功
5、基于kubeconfig配置文件的方法登录dashboard
<1>获取Token
[root@master https]# kubectl get secrets -n kube-system | grep dashboard-admin
//先得到Token的名称
[root@master https]# kubectl describe secrets -n kube-system dashboard-admin-token-62bh9
//查看上述得到的secret资源的详细信息,会得到token
<2>生成kubeconfig配置文件。
设置一个环境变量代表获取的token
[root@master https]# DASH_TOKEN=$(kubectl get secrets -n kube-system dashboard-admin-token-62bh9 -o jsonpath={.data.token} | base64 -d)
将k8s集群的配置信息写入kubeconfig配置文件中。
[root@master https]# kubectl config set-cluster kubernetes --server=192.168.1.21:6443 --kubeconfig=/root/.dashboard-admin.conf
[root@master https]# kubectl config set-credentials dashboard-admin --token=$DASH_TOKEN --kubeconfig=/root/.dashboard-admin.conf
[root@master https]# kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/root/.dashboard-admin.conf
[root@master https]# kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/root/.dashboard-admin.conf
<3>将生成的/root/.dashboard-admin.conf的配置文件,导出并做保存。
[root@master https]# sz /root/.dashboard-admin.conf
//导出到自己习惯的位置即可
<4>从浏览器选择kubeconfig的登录方式,然后导入配置文件即可。
二、部署weave-scope监控k8s集群
Weave Scope 是 Docker 和 Kubernetes 可视化监控工具。Scope 提供了至上而下的集群基础设施和应用的完整视图,用户可以轻松对分布式的容器化应用进行实时监控和问题诊断。
使用scope
- Scope 会自动构建应用和集群的逻辑拓扑。比如点击顶部 PODS,会显示所有 Pod 以及 Pod 之间的依赖关系。
- 点击 HOSTS,会显示各个节点之间的关系。
实时资源监控
- 可以在 Scope 中查看资源的 CPU 和内存使用情况。
- 支持的资源有 Host、Pod 和 Container。**
在线操作
- Scope 还提供了便捷的在线操作功能,比如选中某个 Host,点击 >_ 按钮可以直接在浏览器中打开节点的命令行终端
- 点击 Deployment 的 + 可以执行 Scale Up 操作
- 可以查看 Pod 的日志
- 可以 attach、restart、stop 容器,以及直接在 Scope 中排查问题
强大的搜索功能
- Scope 支持关键字搜索和定位资源。
- 还可以进行条件搜索,比如查找和定位 MEMORY > 100M 的 Pod。
1、在github上查找scope的yaml文件
(1)github上搜索scope
(2)进入k8s的部署scope的说明
(3)选择k8s的部署
(4)复制上面的链接,并下载yaml文件
[root@master https]# wget https://cloud.weave.works/k8s/scope.yaml
2、修改下载的yaml文件并运行
[root@master ~]# vim scope.yaml #编辑yaml文件
#跳转至213行,修改其service的端口类型
spec:
type: NodePort #修改类型为NodePort
ports:
- name: app
port: 80
protocol: TCP
targetPort: 4040
(1)执行一下
[root@master https]# kubectl apply -f scope.yaml
(2)查看容器的运行情况,确定处于正常运行
[root@master https]# kubectl get pod -o wide -n weave
- DaemonSet weave-scope-agent,集群每个节点上都会运行的 scope agent 程序,负责收集数据。
- Deployment weave-scope-app,scope 应用,从 agent 获取数据,通过 Web UI 展示并与用户交互。
- Service weave-scope-app,默认是 ClusterIP 类型,我们已经在上面的命令中添加了参数k8s-service-type=NodePort修改为 NodePort。
[root@master https]# kubectl get svc -n weave
#DaemonSet资源对象:weave-scope-agent(代理):负责收集节点的信息;
#deployment资源对象:weave-scope-app(应用):从agent获取数据,通过web UI展示并与用户交互;
#DaemonSet资源对象的特性和deployment相比,就是DaemonSet资源对象会在每个节点上都运行且只能运行一个pod。
#由于每个节点都需要监控,所以用到了DaemonSet这种资源对象
3、浏览器访问一下http://192.168.1.21:31841/
在scope的web界面中,可以查看很多的东西,pod、node节点等详细信息,包括打开容器的终端,查看其日志信息等等
总结
• weave scope可以以其简洁的可视化为我们更生动形象的展现出service/controller/pod等资源对象的管理及简单的web ui操作,方便故障排除及时定位
• weave scope作为web ui目前缺少登录验证,可以利用其他方式里面web服务器的验证做安全管控。
三、部署Prometheus服务
PS:在这里部署的prometheus,并不是Prometheus官网提供的,而是使用的coreos提供的prometheus项目。
在部署之前,先来了解一下Prometheus各个组件的作用吧!
- MetricsServer: 是k8s集群资源使用情况的聚合器,收集数据给k8s集群内使用,如kubectl,hpa,scheduler等。
- Prometheus Operator : 是一个系统检测和警报工具箱,用来存储监控数据。
- Prometheus node-exporter :收集k8s集群资源的数据,指定告警规则。
- Prometheus :收集apiserver,scheduler,controller-manager,kubelet组件的数据,通过http协议传输。
- Grafana: 可视化数据统计和监控平台。
特征
Prometheus 相比于其他传统监控工具主要有以下几个特点:
- 具有由 metric 名称和键/值对标识的时间序列数据的多维数据模型
- 有一个灵活的查询语言
- 不依赖分布式存储,只和本地磁盘有关
- 通过 HTTP 的服务拉取时间序列数据
- 也支持推送的方式来添加时间序列数据
- 还支持通过服务发现或静态配置发现目标
- 多种图形和仪表板支持
1、在github上搜索coreos/prometheus
复制链接
2、克隆github上的promethes项目
[root@master promethes]# yum -y install git
//下载git命令
[root@master promethes]# git clone https://github.com/coreos/kube-prometheus.git
//克隆github上的项目
3、修改grafapa-service.yaml文件, 更改为nodePort的暴露方式,暴露端口为31001.。
[root@master promethes]# cd kube-prometheus/manifests/
//进入kube-prometheus的manifests目录
[root@master manifests]# vim grafana-service.yaml #修改grafana的yaml文件
apiVersion: v1
kind: Service
metadata:
labels:
app: grafana
name: grafana
namespace: monitoring
spec:
type: NodePort #改为NodePort类型
ports:
- name: http
port: 3000
targetPort: http
nodePort: 31001 #映射到宿主机31001端口
selector:
app: grafana
3.修改prometheus-service.yaml文件, 更改为nodePort的暴露方式,暴露端口为31002.
[root@master manifests]# vim prometheus-service.yaml #修改prometheus的yaml文件
apiVersion: v1
kind: Service
metadata:
labels:
prometheus: k8s
name: prometheus-k8s
namespace: monitoring
spec:
type: NodePort #改为NodePort类型
ports:
- name: web
port: 9090
targetPort: web
nodePort: 31002 #映射到宿主机31002端口
selector:
app: prometheus
prometheus: k8s
sessionAffinity: ClientIP
4、修改alertmanager-service.yaml文件, 更改为nodePort的暴露方式,暴露端口为31003
[root@master manifests]# vim alertmanager-service.yaml #修改alertmanager的yaml文件
apiVersion: v1
kind: Service
metadata:
labels:
alertmanager: main
name: alertmanager-main
namespace: monitoring
spec:
type: NodePort #改为NodePort类型
ports:
- name: web
port: 9093
targetPort: web
nodePort: 31003 #映射到宿主机31003端口
selector:
alertmanager: main
app: alertmanager
sessionAffinity: ClientIP
5、将setup目录中所有的yaml文件,全部运行。是运行以上yaml文件的基础环境配置。
[root@master manifests]# cd setup/
//进入setup/目录
[root@master manifests]# kubectl apply -f setup/
//运行setup目录中所有的yaml文件
6、将主目录(kube-prometheus)中所有的yaml文件,全部运行。
当执行以下yaml文件时,每个节点会在互联网上下载很多镜像,为了防止下载镜像的时间过长,可以先将我提供的镜像下载到本地,然后导入至各个节点,然后在执行下面的yaml文件,将会省些时间。(如果下载我提供的镜像,建议写个导入镜像的脚本进行导入操作,避免手动导入,造成错误)
[root@master manifests]# cd ..
//返回上一级目录(kube-prometheus)
[root@master kube-prometheus]# kubectl apply -f manifests/
//运行kube-prometheus目录中所有的yaml文件
查看一下
[root@master ~]# kubectl get pod -n monitoring
7、浏览器访问一下http://192.168.1.21:31001
客户端访问群集中任意节点的IP+30100端口,即可看到以下界面(默认用户名和密码都是admin)
根据提示更改密码:
(1)添加模板
依次点击“import”进行导入下面三个模板:
(2)进行以下点击,即可查看群集内的监控状态
以下可看到监控状态
8、导入监控模板
从grafana的官网搜索https://grafana.com/
复制以下这个模板的id
现在可以看到监控画面了
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站栏目:dashboard有什么用?怎么安装和配置dashboard?-创新互联
文章转载:http://hbruida.cn/article/dcopoj.html