前置要求与约定
监控作为独立的一部分,如果您选择安装,需要准备额外的资源:
- 内存: 8G及以上
- 磁盘: ssd或高速存储介质50G及以上
- CPU: 2核2线程及以上
安装要求:
- Kubernetes 1.10+ with Beta APIs
- Helm 2.12+ (If using Helm < 2.14, see below for CRD workaround)
基于 prometheus-operator添加了的监控仪表盘。
部署监控组件
监控非平台运行的必要组件,安装监控组件可以查看集群各个服务cpu,内存和网络等状态,便于优化和提高资源利用率。
添加choerodon chart仓库
helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/
helm repo update
安装监控组件
- 编写参数配置文件
prometheus-operator-value.yaml
grafana:
adminPassword: password
ingress:
enabled: true
hosts:
- grafana.example.choerodon.io
persistence:
enabled: true
storageClassName: standard
prometheus:
ingress:
enabled: true
hosts:
- prometheus.example.com
prometheusSpec:
storageSpec:
volumeClaimTemplate:
spec:
storageClassName: standard
- 安装监控
helm install c7n/prometheus-operator \
-f prometheus-operator-value.yaml \
--name=prometheus-operator \
--version 8.5.8 \
--namespace=monitoring
下面列出 Prometheus Operator 常用可配置的参数以及默认值,其他配置参考官方文档
参数描述默认值grafana.adminPassword
登录grafana UI的管理员密码“prom-operator”grafana.defaultDashboardsEnabled
部署默认的 dashboards。这些使用 sidecar 加载的true
grafana.ingress.enabled
是否启用 Grafana 的 Ingressfalse
grafana.ingress.hosts
设置 Grafana 的域名[]grafana.persistence
grafana 存储定义{}grafana.grafana.ini
Grafana的配置,需要配置auth.generic_oauth
的 oauth2 认证{}prometheus.ingress.enabled
如果是 ture
,创建 Prometheus Ingressfalseprometheus.ingress.hosts
Prometheus 域名[]prometheus.serviceMonitor.relabelings
实例收集的 relabel_configs
,需要修改 cluster
标签的replacement 为目标集群名prometheus.prometheusSpec.storageSpec
storage Spec,用于指定如何使用存储{}prometheus.prometheusSpec.additionalScrapeConfigs
additionalScrapeConfigs 允许指定其他 Prometheus 收集配置。收集配置会追加到 Prometheus Operator 生成的配置中。配置必须符合 Prometheus 官方文档中指定的格式。用户有责任确保它的有效性。{}
- 查看监控
在浏览器中输入配置的grafana地址即可,更多信息参见此处。
常见问题
Helm 创建 crd 失败
将 helm 升级到 2.14 + 可以避免这个问题——由于helm 的 bug,它可能无法正常安装 chart 里面的五个 CRDs,导致安装 chart 失败。如果使用的helm无法升级,你应该安装采取下面的步骤来解决这个问题:为了在解决这个问题必须保证在安装时这五个 CRDS 已经存在,并禁止创建它。
- 创建 CRDs
kubectl apply -f https://raw.githubusercontent.com/coreos/prometheus-operator/master/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml
kubectl apply -f https://raw.githubusercontent.com/coreos/prometheus-operator/master/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml
kubectl apply -f https://raw.githubusercontent.com/coreos/prometheus-operator/master/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml
kubectl apply -f https://raw.githubusercontent.com/coreos/prometheus-operator/master/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
kubectl apply -f https://raw.githubusercontent.com/coreos/prometheus-operator/master/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
等待 CRDs 创建完成,这可能需要一些时间。
安装时禁用 CRDs 创建
prometheusOperator.createCustomResource=false
$ helm install --name my-release c7n/prometheus-operator --set prometheusOperator.createCustomResource=false --version 8.5.8