k8s群集的三种Web-UI界面部署
2020-09-13 17:57
1331 查看
一、部署dashboard的Web-UI界面
1、下载yaml文件
//github搜索dashboard找到该项目
//下载yaml文件 [root@docker-k8s01 ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml //编辑yaml文件 [root@docker-k8s01 ~]# vim recommended.yaml //跳转到40行左右,修改其对应的service,类型配置为Nodeport kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard spec: type: NodePort //添加类型为NodePort ports: - port: 443 targetPort: 8443 nodePort: 31010 //映射到宿主机的端口为31010 selector: k8s-app: kubernetes-dashboard //执行yaml文件 [root@docker-k8s01 ~]# kubectl apply -f recommended.yaml //查看Pod是否运行 [root@docker-k8s01 ~]# kubectl get pod -n kubernetes-dashboard //查看其详细信息 [root@docker-k8s01 ~]# kubectl describe pod -n kubernetes-dashboard dashboard-metrics-scraper-76679bc5b9-sbcvw //确保该yaml文件提供的pod都正常运行 [root@docker-k8s01 ~]# kubectl get svc -n kubernetes-dashboard NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-metrics-scraper ClusterIP 10.103.65.117 <none> 8000/TCP 3m3s kubernetes-dashboard NodePort 10.110.154.42 <none> 443:31010/TCP 3m3s
2、访问测试
//这里使用的dashboard版本较高,相较于之前的版本访问必须使用火狐浏览器,这里不需要。
访问https://192.168.171.151:31010(访问集群内的任意节点IP都可以)<
71f0
/strong>
//创建dashboard的管理用户 [root@docker-k8s01 ~]# kubectl create serviceaccount dashboard-admin -n kube-system //绑定用户为集群的管理员 [root@docker-k8s01 ~]# kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin //获取刚刚创建的用户Token [root@docker-k8s01 ~]# kubectl get secrets -n kube-system | grep dashboard-admin dashboard-admin-token-zbdqm kubernetes.io/service-account-token 3 63s [root@docker-k8s01 ~]# kubectl describe secrets -n kube-system dashboard-admin-token-zbdqm //注意:上面的最后一段取决于上面查看到的用户的secrets名字。 Name: dashboard-admin-token-zbdqm Namespace: kube-system Labels: <none> Annotations: kubernetes.io/service-account.name: dashboard-admin kubernetes.io/service-account.uid: e9716e34-581a-4c30-b601-0a2a254d4a26 Type: kubernetes.io/service-account-token Data ==== namespace: 11 bytes token: //将token字段后面的值复制下来,如下图
将Token值粘贴到下面
//至此,就可以在web界面进行监控群集节点的信息,及创建资源对象
注:一般不会在这上面进行创建资源对象
方法二
//查看刚才创建的token [root@master ~]# kubectl get secrets -n kube-system | grep dashboard dashboard-admin-token-22n2v kubernetes.io/service-account-token 3 11m //查看token的详细信息,会获取token [root@master ~]# kubectl describe secrets -n kube-system dashboard-admin-token-22n2v //将token的信息生成一个变量 [root@master ~]# DASH_TOKEN=$(kubectl get secrets -n kube-system dashboard-admin-token-22n2v -o jsonpath={.data.token} | base64 -d) //将k8s集群的配置信息写入到一个文件中,文件可自定义 [root@master ~]# kubectl config set-cluster kubernets --server=192.168.10.52:6443 --kubeconfig=/root/.dashboard-admin.conf Cluster "kubernets" set. //将token的信息也写入到文件中(同一个文件) [root@master ~]# kubectl config set-credentials dashboard-admin --token=${DASH_TOKEN} --kubeconfig=/root/.dashboard-admin.conf User "dashboard-admin" set. //用户信息也写入文件中(同一个文件) [root@master ~]# kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/root/.dashboard-admin.conf Context "dashboard-admin@kubernetes" created. //将上下文的配置信息也写入文件中(同一个文件) [root@master ~]# kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/root/.dashboard-admin.conf Switched to context "dashboard-admin@kubernetes". //最后将配置信息导入到客户端本地 [root@master ~]# sz /root/.dashboard-admin.conf
//将文件导出后,还是登录到刚刚输入Token的界面,选择kubeconfig,然后将刚才导出的文件上传至此点击登录即可。
本人较懒,这里我就不配图了,见谅。
二、部署weave-scope监控k8s群集
1、下载yaml文件
//github上搜索“scope”
//下拉页面,点击kubernetes
//进入到新页面后再次下拉
//将获得的链接下载 [root@docker-k8s01 ~]# wget https://cloud.weave.works/k8s/scope.yaml //修改yaml文件 [root@docker-k8s01 ~]# vim scope.yaml //跳转到大概197行左右,修改其service的端口类型 spec: type: NodePort //类型为NodePort ports: - name: app port: 80 protocol: TCP targetPort: 4040 nodePort: 30123 //配置映射到宿主机的端口 [root@docker-k8s01 ~]# kubectl apply -f scope.yaml //查看容器的运行情况 [root@docker-k8s01 ~]# kubectl get pod -o wide -n weave NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES weave-scope-agent-9vj2w 1/1 Running 0 119s 192.168.171.151 docker-k8s01 <none> <none> weave-scope-agent-h4gt6 1/1 Running 0 119s 192.168.171.152 docker-k8s03 <none> <none> weave-scope-agent-lqzbq 1/1 Running 0 119s 192.168.171.150 docker-k8s02 <none> <none> weave-scope-app-b965dccb7-ph6zg 1/1 Running 0 119s 10.244.1.3 docker-k8s02 <none> <none> weave-scope-cluster-agent-6598584d8-h8b9q 1/1 Running 0 119s 10.244.2.3 docker-k8s03 <none> <none> //DaemonSet资源对象:weave-scope-agent(代理):负责收集节点的信息; //deployment资源对象:weave-scope-app(应用):从agent获取数据,通过web UI展示并与用户交互; //DaemonSet资源对象的特性和deployment相比,就是DaemonSet资源对象会在每个节点上都运行且只能运行一个pod。 //由于每个节点都需要监控,所以用到了DaemonSet这种资源对象
2、访问测试
//访问群集的映射端口30123
//scope的web界面中,可以查看很多的东西,pod、node节点等详细信息,包括打开容器的终端,查看其日志信息等等......
三、部署Prometheus服务
Prometheus各组件的作用:
- MertricServer:是k8s集群资源使用情况的聚合器,收集数据给K8s集群内使用,如:kubectl,hpa,scheduler
- PrometheusOperator:是一个系统检测和警报工具箱,用来存储监控数据;
- NodeExporter:用于各node的关键度量指标状态数据;
- kubeStateMetrics:收集k8s集群内资源对象数据,指定告警规则;
- Prometheus:采用pull方式收集apiserver,scheduler,controller-manager,kubelet组件数据,通过http协议传输;
- Grafana:是可视化数据统计和监控平台。
1、下载prometheus所需文件
//github上搜索prometheus,获取到git下载链接
//安装git命令 [root@docker-k8s01 ~]# yum -y install git //创建目录(可忽略) [root@docker-k8s01 ~]# mkdir prometheus [root@docker-k8s01 ~]# cd prometheus/ //克隆github库 [root@docker-k8s01 prometheus]# git clone https://github.com/imirsh/kube-prometheus.git //进入到克隆目录 [root@docker-k8s01 prometheus]# cd kube-prometheus/manifests/
2、修改各个组件Service的yaml文件
//修改grafana的yaml文件 [root@docker-k8s01 manifests]# cat grafana-service.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: 30333 //映射端口为30333 selector: app: grafana //修改prometheus的yaml文件 [root@docker-k8s01 manifests]# cat prometheus-service.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: 30444 //映射端口为30444 selector: app: prometheus prometheus: k8s sessionAffinity: ClientIP //修改alertmanager的yaml文件 [root@docker-k8s01 manifests]# cat alertmanager-service.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: 30555 //映射端口为30555 selector: alertmanager: main app: alertmanager sessionAffinity: ClientIP
3、执行yaml文件
//确定当前路径 [root@docker-k8s01 manifests]# pwd /root/prometheus/kube-prometheus/manifests //执行setup目录下的所有yaml文件,记住是所有! [root@docker-k8s01 manifests]# kubectl apply -f setup/ //建议多执行几次,因为目录下的yaml文件太多,可能执行的时候可能会落下一两个没有执行 [root@docker-k8s01 manifests]# cd .. //返回上级目录 [root@docker-k8s01 kube-prometheus]# pwd /root/prometheus/kube-prometheus //执行该目录下的所有yaml [root@docker-k8s01 kube-prometheus]# kubectl apply -f manifests/ //确保所有pod都正常运行 [root@docker-k8s01 kube-prometheus]# kubectl get pod -n monitoring -w
当执行以下yaml文件时,每个节点会在互联网上下载很多镜像,为了防止下载镜像的时间过长,可以先将镜像下载到本地,然后导入至各个节点,然后在执行yaml文件,将会省些时间。
4、客户端访问群集中任意节点的IP+30100端口,即可看到以下界面(默认用户名和密码都是admin)
//添加模板
//依次点击“import”进行导入下面三个模板
当然,也可以到grafana网站寻找合适的模板进行下载,这里我就不详细介绍怎么添加模板了。
相关文章推荐
- tomcat部署发布web应用的三种方法
- tomcat部署web应用的三种方式
- Tomcat 部署Web应用 的三种方式
- tomcat 部署web项目的三种方法
- Tomcat中部署web应用的三种方式
- Java Web开发Tomcat中三种部署项目的方法
- tomcat部署web应用的三种方式(转)
- tomcat部署web 项目三种方式
- Java Web开发Tomcat中三种部署项目的方法
- 转:Java Web 项目发布到Tomcat中三种部署方法
- tomcat部署web应用的三种方式(转)
- 部署Web部件的三种方法
- 在Linux安装配置Tomcat 并部署web应用 ( 三种方式 )
- 将Web应用部署到Tomcat根目录的三种方法
- 在Linux安装配置Tomcat 并部署web应用 ( 三种方式 )
- tomcat部署web应用的三种方式
- Axis部署和开发web service支持的三种方式
- TOMCAT的目录结构 1++ Tomact的一些小配置2++Java Web开发: Tomcat中部署项目的三种方法
- tomcat部署web应用的三种方式
- tomcat部署web应用的三种方式