k8s群集的三种Web-UI界面部署
2021-01-02 20:30
标签:bytes byte targe scope 选择 target 详细信息 web 端口 //github搜索dashboard找到该项目 //这里使用的dashboard版本较高,相较于之前的版本访问必须使用火狐浏览器,这里不需要。 访问https://192.168.171.151:31010(访问集群内的任意节点IP都可以) 将Token值粘贴到下面 注:一般不会在这上面进行创建资源对象 //将文件导出后,还是登录到刚刚输入Token的界面,选择kubeconfig,然后将刚才导出的文件上传至此点击登录即可。 本人较懒,这里我就不配图了,见谅。 //github上搜索“scope” //进入到新页面后再次下拉 //访问群集的映射端口30123 //scope的web界面中,可以查看很多的东西,pod、node节点等详细信息,包括打开容器的终端,查看其日志信息等等...... Prometheus各组件的作用: //github上搜索prometheus,获取到git下载链接 当执行以下yaml文件时,每个节点会在互联网上下载很多镜像,为了防止下载镜像的时间过长,可以先将镜像下载到本地,然后导入至各个节点,然后在执行yaml文件,将会省些时间。 //添加模板 //依次点击“import”进行导入下面三个模板 k8s群集的三种Web-UI界面部署 标签:bytes byte targe scope 选择 target 详细信息 web 端口 原文地址:https://blog.51cto.com/14227204/25327141、下载yaml文件
//下载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
2、访问测试
//创建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:
//至此,就可以在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
二、部署weave-scope监控k8s群集
1、下载yaml文件
//下拉页面,点击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
2、访问测试
三、部署Prometheus服务
1、下载prometheus所需文件
//安装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
4、客户端访问群集中任意节点的IP+30100端口,即可看到以下界面(默认用户名和密码都是admin)
当然,也可以到grafana网站寻找合适的模板进行下载,这里我就不详细介绍怎么添加模板了。
文章标题:k8s群集的三种Web-UI界面部署
文章链接:http://soscw.com/index.php/essay/39662.html