使用具有外部 IP 地址的普罗米修斯
use prometheus with external ip address
我们有 k8s 集群,我有 运行ning 的应用程序。
现在我尝试添加 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
创建成功
现在我看到外部 IP 就像 运行ning kubectl get services
my-prometheus-server LoadBalancer 100.33.26.206 8080:30001/TCP 80/TCP 8m43s
我在浏览器中使用 100.33.26.206:30001 没有任何反应,知道吗?
我认为您想要做的是创建一个类型为 LoadBalancer 的服务,这些服务具有内部和外部 IP。
您可以像创建任何其他服务一样创建一个,但您应该精确说明这两个字段:
externalTrafficPolicy: Local
type: LoadBalancer
已更新:
似乎有些混乱,您不需要外部 ip 来监控您的应用程序,它只会用于访问 prometheus UI。
UI 可在端口 9090 上访问,但出口商永远不会访问普罗米修斯,因为它将是普罗米修斯,它将 抓取 出口商。
现在要从 Internet 访问服务,您应该有一个 google ip,但看起来您拥有的仍然是一个内部 IP,它与另一个 clusterIP 在同一子网中,它应该不是。现在代替外部 ip,它显示端口重定向也是错误的,因为 prometheus UI 在端口 9090 上(如果你没有修改你的配置它应该仍然是)。您应该尝试删除“nodePort”并将端口重定向到 kubernetes。
Prometheus helm chart 确实支持服务配置,请参阅 documentation
要在本地集群上配置 Prometheus 服务器,请按照以下步骤操作:
创建 values.yaml:
server:
service:
servicePort: 31000
type: LoadBalancer
loadBalancerIP: localhost
或
server:
service:
nodePort: 31000
type: NodePort
将稳定的 repo 添加到 helm(如果缺少):
helm repo add stable "https://kubernetes-charts.storage.googleapis.com/"
安装普罗米修斯:
helm install prometheus-demo stable/prometheus --values .\values.yaml
等待 1-2 分钟。 Prometheus 应该可用:http://localhost:31000/
我们有 k8s 集群,我有 运行ning 的应用程序。 现在我尝试添加 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
创建成功
现在我看到外部 IP 就像 运行ning kubectl get services
my-prometheus-server LoadBalancer 100.33.26.206 8080:30001/TCP 80/TCP 8m43s
我在浏览器中使用 100.33.26.206:30001 没有任何反应,知道吗?
我认为您想要做的是创建一个类型为 LoadBalancer 的服务,这些服务具有内部和外部 IP。
您可以像创建任何其他服务一样创建一个,但您应该精确说明这两个字段:
externalTrafficPolicy: Local
type: LoadBalancer
已更新:
似乎有些混乱,您不需要外部 ip 来监控您的应用程序,它只会用于访问 prometheus UI。
UI 可在端口 9090 上访问,但出口商永远不会访问普罗米修斯,因为它将是普罗米修斯,它将 抓取 出口商。
现在要从 Internet 访问服务,您应该有一个 google ip,但看起来您拥有的仍然是一个内部 IP,它与另一个 clusterIP 在同一子网中,它应该不是。现在代替外部 ip,它显示端口重定向也是错误的,因为 prometheus UI 在端口 9090 上(如果你没有修改你的配置它应该仍然是)。您应该尝试删除“nodePort”并将端口重定向到 kubernetes。
Prometheus helm chart 确实支持服务配置,请参阅 documentation
要在本地集群上配置 Prometheus 服务器,请按照以下步骤操作:
创建 values.yaml:
server:
service:
servicePort: 31000
type: LoadBalancer
loadBalancerIP: localhost
或
server:
service:
nodePort: 31000
type: NodePort
将稳定的 repo 添加到 helm(如果缺少):
helm repo add stable "https://kubernetes-charts.storage.googleapis.com/"
安装普罗米修斯:
helm install prometheus-demo stable/prometheus --values .\values.yaml
等待 1-2 分钟。 Prometheus 应该可用:http://localhost:31000/