目录

    Helm 是 Kubernetes 的包管理工具;Operator 用于管理 Kubernetes 的有状态分布式应用。本文主要描述如何使用 Helm、Operator 在 Minikube 集群上快速部署 Prometheus,并使用 Grafana 查看监控数据。Minikube 安装可以参考,搭建远程 Kubernetes 开发环境,Helm 配置可以参考,Kubernetes 的包管理器 – Helm,Operator 可以参考,Kubernetes复杂有状态应用管理框架–Operator

    1. 安装 Prometheus Operator

    helm install --name prometheus-operator --namespace=monitoring stable/prometheus-operator
    

    2. 安装 Prometheus

    helm install --name prometheus --set serviceMonitorsSelector.app=prometheus --set ruleSelector.app=prometheus --namespace=monitoring stable/prometheus
    

    3. 安装 Alertmanager

    helm install --name alertmanager --namespace=monitoring stable/alertmanager
    

    4. 暴露服务

    为了方便访问 Prometheus 和 Grafana,我们将 Service 类型改为 NodePort。

    查看服务,找到对应的服务名:

    kubectl get svc -n monitoring
    

    暴露服务:

    kubectl patch svc prometheus-operator-grafana -p '{"spec":{"type":"NodePort"}}' -n monitoring
    kubectl patch svc prometheus-operator-prometheus -p '{"spec":{"type":"NodePort"}}' -n monitoring
    

    查看服务,找到对应的访问端口:

    kubectl get svc -n monitoring
    NAME                                           TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
    alertmanager-operated                          ClusterIP   None             <none>        9093/TCP,6783/TCP   16h
    prometheus-alertmanager                        ClusterIP   10.98.63.83      <none>        80/TCP              16h
    prometheus-kube-state-metrics                  ClusterIP   None             <none>        80/TCP              16h
    prometheus-node-exporter                       ClusterIP   None             <none>        9100/TCP            16h
    prometheus-operated                            ClusterIP   None             <none>        9090/TCP            16h
    prometheus-operator-alertmanager               ClusterIP   10.105.201.137   <none>        9093/TCP            16h
    prometheus-operator-grafana                    NodePort    10.110.199.163   <none>        80:32467/TCP        16h
    prometheus-operator-kube-state-metrics         ClusterIP   10.104.56.81     <none>        8080/TCP            16h
    prometheus-operator-operator                   ClusterIP   10.105.127.162   <none>        8080/TCP            16h
    prometheus-operator-prometheus                 NodePort    10.104.241.128   <none>        9090:32044/TCP      16h
    prometheus-operator-prometheus-node-exporter   ClusterIP   10.96.160.143    <none>        9100/TCP            16h
    prometheus-pushgateway                         ClusterIP   10.100.107.222   <none>        9091/TCP            16h
    prometheus-server                              ClusterIP   10.107.184.180   <none>        80/TCP              16h
    

    Grafana 访问入口:http://your_host_ip:32467, Prometheus 访问入口:http://your_host_ip:32044。

    5. 查找 admin 账户密码

    kubectl get secret --namespace monitoring  prometheus-operator-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
    

    Grafana 页面:

    Prometheus 页面: