一、 k8s的UI访问界面-dashboard
在dashboard中,虽然可以做到创建、删除、修改资源等操作,但通常情况下,我们会把它当做监控k8s集群的软件。
1、到GitHub主页上搜索"dashboard"即可。
//可以直接远程运行对应的yaml文件,不过,我们要看一看这个yaml文件内都有些什么内容,然后还需要将svc资源类型更改为NodePort的方式,所以这里我们可以先将这个yam文件下载到本地。
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
注:如果网站访问被拒绝,修改dns为114.114.114.114 (vim /etc/resolv.conf);
或修改/etc/hosts添加域名解析条目,ip地址使用site.ip138.com解析得出。
//更改其SVC资源的类型。 ... spec: #39行 type: NodePort ports: - port: 443 targetPort: 8443 selector: k8s-app: kubernetes-dashboard ... kubectl apply -f recommended.yaml //通常,涉及到k8s的镜像,国内下载往往很慢,不过这个还好。运行过后,查看对应的SVC暴露端口,注意,这个是基于https的访问。 [root@master dashboard]# kubectl get svc -n kubernetes-dashboard NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-metrics-scraper ClusterIP 10.107.195.150 8000/TCP 54s kubernetes-dashboard NodePort 10.109.65.106 443:30990/TCP 55s //此时可以看到,登录dashboard有两种方式,哪一种都可以。
基于token的方法登录dashboard
1、创建一个dashboard的管理用户。
kubectl create serviceaccount dashboard-admin -n kube-system
2、绑定用户为集群管理用户。
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
3、获取token.
//得到token的名称 kubectl get secrets -n kube-system | grep dashboard-admin dashboard-admin-token-jv77h #自己写自己的 //查看上述得到的secret资源的详细信息,会得到token. kubectl describe secrets -n kube-system dashboard-admin-token-jv77h
4、在浏览器上使用token登录。
PS: 如果是使用的旧版本的dashboard,使用谷歌浏览器登录,可能是不成功的,需要换成其他的浏览器,比如:火狐。
基于kubeconfig配置文件的方法登录dashboard
1、获取token.
//得到token的名称 kubectl get secrets -n kube-system | grep dashboard-admin dashboard-admin-token-jv77h //查看上述得到的secret资源的详细信息,会得到token. kubectl describe secrets -n kube-system dashboard-admin-token-jv77h
2、生成kubeconfig配置文件。
//设置一个环境变量代表获取的token。 DASH_TOKEN=$(kubectl get secrets -n kube-system dashboard-admin-token-jv77h -o jsonpath={.data.token} | base64 -d) //将k8s集群的配置信息写入kubeconfig配置文件中。 kubectl config set-cluster kubernetes --server=192.168.8.10:6443 --kubeconfig=/root/.dashboard-admin.conf kubectl config set-credentials dashboard-admin --token=$DASH_TOKEN --kubeconfig=/root/.dashboard-admin.conf kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/root/.dashboard-admin.conf kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/root/.dashboard-admin.conf
4、从浏览器选择kubeconfig的登录方式,然后导入配置文件即可。
二、Scope
//可以直接运行此命令
kubectl apply -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d '\n')&k8s-service-type=NodePort"
如果访问不了网站,参考docker第十一章
三、Prometheus
PS: 在这里部署的prometheus,是使用的coreos提供的prometheus项目。
MetricsServer:是k8s集群资源使用情况的聚合器,收集数据给k8s集群内使用,如kubectl,hpa,scheduler等。
Prometheus Operator: 是一个系统检测和警报工具箱,用来存储监控数据。
Prometheus node-exporter:收集k8s集群资源的数据,指定告警规则。
Prometheus:收集apiserver,scheduler,controller-manager,kubelet组件的数据,通过http协议传输。
1、//克隆prometheus的项目地址到本地。
(打开github.com,搜索kube-prometheus,第一个项目prometheus-operator/kube-prometheus
找到对应版本)
git clone https://github.com/prometheus-operator/kube-prometheus.git
或
download zip
2、修改grafana-service.yaml文件,更改为nodePort的暴露方式,暴露端口为31001.
[root@master manifests]# pwd /root/kube-prometheus-0.6.0/manifests [root@master manifests]# vim grafana-service.yaml spec: type: NodePort ports: - name: http port: 3000 targetPort: http nodePort: 31001 selector:
3、修改prometheus-service.yaml文件,更改为nodePort的暴露方式,暴露端口为31002.
[root@master manifests]# vim prometheus-service.yaml ... spec: type: NodePort ports: - name: web port: 9090 targetPort: web nodePort: 31002 ...
4、修改alertmanager-service.yaml文件,更改为nodePort的暴露方式,暴露端口为31003.
[root@master manifests]# vim alertmanager-service.yaml ... spec: type: NodePort ports: - name: web port: 9093 targetPort: web nodePort: 31003 selector: ...
5、将这个目录中的yaml文件,全部运行。是运行以上yaml文件的基础环境配置。有可能因为目录内yaml文件过多,一次不能全部运行,所以咋运行的时候,多运行两遍
cd /root/kube-prometheus-0.6.0/manifests
kubectl create -f setup/
6、运行主yaml文件。有可能因为目录内yaml文件过多,一次不能全部运行,所以运行的时候,多运行两遍
cd /root/kube-prometheus-0.6.0
kubectl create -f manifests/
7、浏览器访问grafana
用户名: admin
密码: admin
8、导入监控模板
https://grafana.com/grafana/dashboards/8588
------------------------------------------------------
kuboard:
k8s图形化管理工具
安装:使用华为源
kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml
查看部署情况:
kubectl get pod -n kuboard
部署后访问:
添加k8s集群