Prometheus+grafana安装说明
1.helm安装
1.helm 客户端安装
#从官网下载最新版本的二进制安装包到本地:https://github.com/kubernetes/helm/releases
tar -zxvf helm-v2.14.1-linux-amd64.tar.gz
# 把 helm 指令放到bin目录下
cp linux-amd64/helm /usr/local/bin/
#可执行helm version验证
2.Tiller服务器安装
因为Kubernetes APIServer开启了RBAC访问控制,所以需要创建tiller使用的service account: tiller并分配合适的角色给它。 详细内容可以查看helm文档中的Role-based Access Control。 这里简单起见直接分配cluster-admin这个集群内置的ClusterRole给它。创建rbac-config.yaml文件:
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: tiller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
kubectl create -f rbac-config.yaml
#1拉取镜像(此处拉取的非官方镜像)
docker pull jessestuart/tiller:v2.14.1
#2.将拉取的镜像tag为官方镜像
docker tag jessestuart/tiller:v2.14.1 gcr.io/kubernetes-helm/tiller:v2.14.1
#3.安装
helm init --service-account tiller --tiller-image gcr.io/kubernetes-helm/tiller:v2.14.1 --skip-refresh
添加repo
helm repo add stable http://mirror.azure.cn/kubernetes/charts/
helm repo add incubator http://mirror.azure.cn/kubernetes/charts-incubator/
参考地址
https://www.jianshu.com/p/dc8a4b5916cc
https://www.cnblogs.com/peitianwang/p/11649621.html
https://www.jianshu.com/p/d0cdbb49569b
3.问题解决
1.安装问题
Error: error installing: the server could not find the requested resourc
输出tiller的定义文件
helm init --output yaml > tiller.yaml
#修改定义文件 apiVersion改为apps/v1,并新增selector信息 如下:
vim tiller.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: helm
name: tiller
name: tiller-deploy
namespace: kube-system
spec:
replicas: 1
strategy: {}
selector:
matchLabels:
app: helm
name: tiller
...
#修改后执行定义文件
kubectl apply -f tiller.yaml
2.helm 安装遇到错误
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list resource "configmaps" in API group "" in the namespace "kube-system"
解决办法:
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
参考地址:
https://www.cnblogs.com/wangdongpython/p/11563464.html
https://blog.csdn.net/weixin_44723434/article/details/103260500/
https://www.cnblogs.com/wangdongpython/p/11563464.html
2.安装Prometheus-operator
2.1安装
kubectl create namespace monitoring
helm install --name prometheus-operator --set rbacEnable=true --namespace=monitoring stable/prometheus-operator
修改 alertmanager、prometheus、grafana的访问类型为NodePort
2.1重新安装问题
1.从k8s中删除release
helm delete releasename
2.删除
helm del --purge releasename
3.删除相关crd
kubectl delete crd prometheuses.monitoring.coreos.com
kubectl delete crd prometheusrules.monitoring.coreos.com
kubectl delete crd servicemonitors.monitoring.coreos.com
kubectl delete crd podmonitors.monitoring.coreos.com
kubectl delete crd alertmanagers.monitoring.coreos.com
kubectl delete crd thanosrulers.monitoring.coreos.com
4.重新安装
3.配置NodePort模式以供浏览器访问
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ueg2ZS6q-1593423340723)(C:\Users\86183\AppData\Roaming\Typora\typora-user-images\image-20200610155151813.png)]
kubectl edit svc prometheus-operator-grafana -n monitoring
kubectl edit svc prometheus-operator-alertmanager -n monitoring
kubectl edit svc prometheus-operator-prometheus -n monitoring
grafana 访问用户名和密码 admin/prom-operator
ctl edit svc prometheus-operator-alertmanager -n monitoring
kubectl edit svc prometheus-operator-prometheus -n monitoring
grafana 访问用户名和密码 ***admin/prom-operator***
###