【问题标题】:ext_authz cluster 'x' does not existext_authz 集群“x”不存在
【发布时间】:2021-06-22 02:45:44
【问题描述】:

我正在尝试使用 istio 进行 jwt 验证。我有一个带有标签 app=auth-verify 的应用程序在端口 3000 上运行,它有 1 个端点 /auth,它将检查授权标头。 主应用程序有标签 app=backend 期望 auth-verify 应用程序验证 jwt 并添加标头 x-authenticated。下面是我的 EnvoyFilter 的 CRD。

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: jwt-verification
  namespace: default
spec:
  workloadSelector:
    labels:
      app=backend
  configPatches:
    - applyTo: HTTP_FILTER
      match:
        context: SIDECAR_INBOUND
        listener:
          filterChain:
            filter:
              name: "envoy.filters.network.http_connection_manager"
              subFilter:
                name: "envoy.filters.http.router"
      patch:
        operation: INSERT_BEFORE
        filterClass: STATS
        value:
          name: envoy.filters.http.ext_authz
          typed_config:
            "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz
            http_service:
              server_uri:
                uri: http://auth-verify.default.svc.cluster.local:3000/auth
                cluster: outbound|3000||http://auth-verify
                timeout: 5s
            status_on_error:
              code: FailedDependency

当我通过 kubectl logs --tail 1 -f backend-695cf5b89d-nkgps istio-proxy 检查后端 pod 上的日志时,我可以看到这个错误。

debug   envoy config    ext_authz cluster 'outbound|3000||http://auth-verify' does not exist
debug   envoy http  [C9552][S4342964409469864253] Sending local reply with details ext_authz_error

我该如何解决这个问题?

【问题讨论】:

    标签: kubernetes istio envoyproxy istio-sidecar


    【解决方案1】:

    我的错误是在集群字符串中添加了“http://”。 改成cluster: outbound|3000||auth-verify.default.svc.cluster.local就可以使用了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2021-10-29
      • 2016-02-24
      • 2015-01-13
      • 1970-01-01
      • 2020-12-19
      • 2017-09-24
      相关资源
      最近更新 更多