使用带有外部IP地址的Prometheus

时间:2019-02-05 13:47:01

标签: kubernetes google-cloud-platform prometheus kubernetes-helm

我们有k8s集群,并且我有正在运行的应用程序。 现在,我尝试添加https://prometheus.io/ 我使用命令

helm install stable/prometheus --version 6.7.4 --name my-prometheus

此命令有效,我知道了

NAME: my-prometheus LAST DEPLOYED: Tue Feb 5 15:21:46 2019 NAMESPACE: default STATUS: DEPLOYED ... 当我运行命令

kubectl get services

我知道了

kubernetes                         ClusterIP   100.64.0.1       <none>        443/TCP    2d4h
my-prometheus-alertmanager         ClusterIP   100.75.244.55   <none>        80/TCP     8m44s
my-prometheus-kube-state-metrics   ClusterIP   None             <none>        80/TCP     8m43s
my-prometheus-node-exporter        ClusterIP   None             <none>        9100/TCP   8m43s
my-prometheus-pushgateway          ClusterIP   100.75.24.67     <none>        9091/TCP   8m43s
my-prometheus-server               ClusterIP   100.33.26.206   <none>        80/TCP     8m43s

我没有任何外部IP

有人知道如何添加吗?通过服务?任何例子

更新

我添加了以下yml

apiVersion: v1
kind: Service
metadata:
  name: prometheus-service
spec:
  selector:
    app: prometheus-server
  type: LoadBalancer
  ports:
    - port: 8080
      targetPort: 9090
      nodePort: 30001

创建成功

现在我看到运行kubectl get services时的外部IP

my-prometheus-server               LoadBalancer   100.33.26.206   8080:30001/TCP     80/TCP     8m43s

我在浏览器中使用100.33.26.206:30001,但没有任何反应,知道吗?

2 个答案:

答案 0 :(得分:1)

我认为您要尝试创建的类型为LoadBalancer的服务,这些服务具有内部和外部IP。

您可以像创建其他任何服务一样创建一个服务,但是您应该精确调整这两个字段:

externalTrafficPolicy: Local
type: LoadBalancer

已更新

似乎有些混乱,您不需要外部ip来监视您的应用程序,它将仅用于访问prometheus UI。

可以在端口9090上访问UI,但是出口商从不访问普罗米修斯,因为普罗米修斯将废弃出口商。

现在要从Internet访问服务,您应该有一个google ip,但是看来您拥有的仍然是内部IP,它与另一个clusterIP位于同一子网中,应该没有。目前,代替外部ip,这表明端口重定向非常错误,因为prometheus UI位于端口9090上(如果您未修改配置,它应该仍然是)。您应该尝试删除“ nodePort”并将端口重定向到kubernetes。

答案 1 :(得分:0)

Prometheus舵表确实支持服务配置,请参见documentation

要在本地群集上配置Prometheus服务器,请按照以下步骤操作:

创建values.yaml:

server:
  service:
    servicePort: 31000
    type: LoadBalancer
    loadBalancerIP: localhost

server:
  service:
    nodePort: 31000
    type: NodePort 

向头盔添加稳定的仓库(如果缺少):

helm repo add stable "https://kubernetes-charts.storage.googleapis.com/"

安装Prometheus:

helm install prometheus-demo stable/prometheus --values .\values.yaml

等待1-2分钟。 Prometheus应该可用:http://localhost:31000/