安装Istio后Prometheus Operator失败

时间:2019-12-10 22:09:39

标签: kubernetes kubernetes-helm istio prometheus-operator

我正在尝试安装prometheus运算符并使用sidecar进行注入。相互TLS已打开,并且对于Jaeger来说可以正常使用。对于操作员,尽管我们在操作许可工作上遇到了失败(请参见图片)。 Prometheus Operator Error

我相信Istio会导致这种情况,就像我在istio之前释放prometheus-operator或不使用istio一样,它都可以,但是没有注入。

我尝试在istio操作员辅助设置中设置以下内容:

rewriteapphttpprobe:true

我也尝试将readinessInitialDelaySeconds扩展到10s,但仍然会收到错误。其他人有什么想法吗?

1 个答案:

答案 0 :(得分:0)

根据istio documentation的所有字段,默认情况下,Prometheus用作istio网格中的默认观察算子:

  

default Istio metrics由Istio附带的一组配置工件定义,并且默认情况下导出到Prometheus。运营商可以自由修改这些指标的形状和内容,并可以更改其收集机制,以满足他们各自的监视需求。

因此,通过将istio注入prometheus运算符,您最终在istio网格中得到了两个Prometheus运算符。

第二,当您在istio网格中强制执行Mutual TLS时,每个连接都必须安全(TLS)。正如您提到的,在没有组织注射的情况下,它可以工作。

因此,最有可能的原因是准备就绪探针失败,因为它使用的是不安全的(纯文本)HTTP协议,这是您将获得503错误的原因之一。 / p>

如果您真的需要在istio网格中使用prometheus运算符,可以通过仅将DestinationRule设置为Disable tls模式来解决此问题,仅用于准备就绪探针。

示例:

$ kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
 name: "readiness-probe-dr"
 namespace: "prometheus-namespace"
spec:
 host: "prometheus-prometheus-oper-prometheus.svc.cluster.local"
 trafficPolicy:
   tls:
     mode: DISABLE
EOF

注意:确保对其进行修改,使其与您的名称空间和主机匹配。网格内还可能存在其他普罗米修斯碰撞。


另一个解决方案是首先不要注射普罗米修斯组织。您可以使用以下命令在prometheus命名空间中禁用istio注入:

$ kubectl get namespace -L istio-injection
NAME              STATUS   AGE     ISTIO-INJECTION
default           Active   4d22h   enabled
istio-system      Active   4d22h   disabled
kube-node-lease   Active   4d22h   
kube-public       Active   4d22h   
kube-system       Active   4d22h   
prometheus        Active   30s     enabled
$ kubectl label namespace prometheus istio-injection=disabled --overwrite
namespace/prometheus labeled
$ kubectl get namespace -L istio-injection
NAME              STATUS   AGE     ISTIO-INJECTION
default           Active   4d22h   enabled
istio-system      Active   4d22h   disabled
kube-node-lease   Active   4d22h   
kube-public       Active   4d22h   
kube-system       Active   4d22h   
prometheus        Active   73s     disabled