我们有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,但没有任何反应,知道吗?
答案 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/