问题标签 [envoyproxy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1043 浏览

kubernetes - 在 GRPC 服务上使用 JWT 进行 Istio 最终用户身份验证

我想通过 Istio 为 GRPC 服务设置身份验证策略

目前,可以在常规 HTTP 服务上添加策略,因为您可以使用Authorization标头将 JWT 令牌传递给服务。我有点迷茫,因为它似乎不是 GRPC 服务的类似策略(您可以在请求的元数据中包含令牌)。

有没有人设法将身份验证策略添加到 Istio 管理的 GRPC 服务?

0 投票
1 回答
204 浏览

kubernetes - 使用带有 secret 和 configmap 的应用程序进行 Istio 注入

我正在尝试使用Istio/envoy入口测试 SSL 直通,因为我能够使用 nginx 入口控制器来实现它。所以我创建了一个 nginx https 部署并测试了 deployment/pod/service 的工作情况。

但是,当我像往常一样运行它时,kubectl apply -f <(istioctl kube-inject -f ~/nginx/nginx-app.yaml)部署不会继续(因此没有创建 pod)。

似乎是音量和安装导致了问题。似乎 Istio 也在尝试安装这些。

有没有人有见识?

谢谢!

0 投票
0 回答
469 浏览

istio - 如何添加额外的 http 标头代表 istio-proxy 的 auth 主体?

在这里使用 Auth0 jwt 令牌成功地遵循了这个最终用户身份验证 Istio 教程。

现在,我有一个用例,我需要注入特定的 http 标头,指定主体及其由该令牌授予的范围权限。怎么做?有没有关于它的指导方针?

0 投票
1 回答
714 浏览

redis - 如何在 Kubernetes 中为 redis 服务配置 envoy 边缘代理?

我想将在 kubernetes 中运行的 Redis HA 服务公开给在云外运行的客户端。为此,我正在尝试设置支持 Redis 的特使。我正在使用大使,它是 kubernetes 特使的包装器。按照这个文档进行初始设置。我是 Envoy 和 kubernetes 的新手。

如何将大使配置为我的 Redis 服务的代理?

我猜有某个地方可以在代理中指定 Redis 服务的地址。很难获得这些信息。页面指的是特使文档中的 Redis 代理,但我不知道在哪里进行更改。

另外,对于我的用例,我只对边缘代理功能感兴趣,而不是特使的服务代理功能。

0 投票
2 回答
2271 浏览

kubernetes - 使用 RBAC 网络过滤器阻止 Envoy 代理中服务的入口或出口

我想尝试在 Envoy 代理中配置一个过滤器,以根据某些 IP、主机名、路由表等来阻止服务的入口和出口。

我已经搜索了文档,并认为这是可能的。但没有得到任何例子,它的用法。

有人可以指出一些如何做到的例子吗?

我想出了这样的事情:

但我无法应用此网络过滤器。所有配置都给我配置错误。

0 投票
1 回答
768 浏览

load-balancing - 如何使用 Envoy 解决此节点关联性

BeginTransaction我提供了一个 gRPC 服务,不幸的是它必须在和CommitAPI 调用之间具有节点亲和性。

消费者 API 调用顺序通常是:

  1. BeginTransaction()返回txnID
  2. DoStuff(txnID, moreParams...)
  3. DoStuff(txnID, moreParams...)
  4. ...
  5. Commit(txnID)

消费者可以是同时调用我的 API 的多线程进程,因此他们可能在任何时间点使用数百个事务。

如果我使用 Envoy 代理作为我的 Service 入口点,BeginTransaction应该路由到集群中任何健康的节点,但它必须确保使用返回的后续调用txnID被路由到同一个节点。

在我的情况下,在 http 标头或消息的任何部分中传递任何上下文信息都是可以接受的。

0 投票
0 回答
111 浏览

kubernetes - 代表请求处理时间的大使指标

我已将大使部署到 Istio。StatsD 导出器已就位,Grafana 仪表板 4698 ( https://grafana.com/dashboards/4698 )。

但似乎没有指标简单地显示获得响应所需的时间。

envoy_listener_0_0_0_0_80_downstream_cx_length_ms - 具有令人困惑的值(所有分位数) http_request_duration_microseconds - 当转换为毫秒时,会给出 10-20 毫秒(0.5 - 0.99 分位数)之类的值,这也不是真实的。

只有 2 个指标正常工作: envoy_cluster_cluster_ext_auth_upstream_rq_time envoy_cluster_cluster_ext_ratelimit_upstream_rq_time

但是这些显示了身份验证和速率限制服务处理请求所花费的时间。

我怎样才能花时间处理整个请求?从它打到大使的那一刻到收到回应的那一刻?

0 投票
0 回答
552 浏览

kubernetes - Istio 未向 Jaeger 报告 https 跟踪

描述错误 我们有一个运行 envoy sidecar 代理的容器,使用 Istio 自己的示例为端口 443 提供服务/部署:sample/https/nginx。我们可以卷曲容器以很好地获取 nginx 页面,但在 Jaeger 中绝对看不到 https 调用的痕迹。只要我们在部署/服务中将端口切换到 80,就会在 Jaeger 中看到 HTTP 调用

预期行为 我们应该看到对容器的 HTTP/HTTPS 调用的跟踪。

重现错误的步骤:

  • 创建 nginx 配置:

    /li>
  • 创建 nginx 部署:

    /li>
  • curl -kv https://service-ip给 200

  • Jaeger 中没有 HTTPS 的痕迹

版本

安装

环境 - 在 AWS EKS 中运行

集群状态 - 附加 的archite.tar.gz

编辑 1

用于服务的 yaml - jaeger-query

apiVersion: v1 kind: Service metadata: creationTimestamp: 2018-10-02T02:32:23Z labels: app: jaeger chart: tracing-1.0.1 heritage: Tiller jaeger-infra: jaeger-service release: istio name: jaeger-query namespace: istio-system resourceVersion: "5259733" selfLink: /api/v1/namespaces/istio-system/services/jaeger-query uid: 6513eded-c5eb-11e8-860c-12504ba0df7c spec: clusterIP: 172.20.14.251 ports: - name: query-http port: 16686 protocol: TCP targetPort: 16686 selector: app: jaeger sessionAffinity: None type: ClusterIP status: loadBalancer: {}

部署: istio-tracing:

apiVersion: extensions/v1beta1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" creationTimestamp: 2018-10-02T02:32:23Z generation: 1 labels: app: istio-tracing chart: tracing-1.0.1 heritage: Tiller release: istio name: istio-tracing namespace: istio-system resourceVersion: "5259783" selfLink: /apis/extensions/v1beta1/namespaces/istio-system/deployments/istio-tracing uid: 65056099-c5eb-11e8-860c-12504ba0df7c spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: jaeger strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 type: RollingUpdate template: metadata: annotations: scheduler.alpha.kubernetes.io/critical-pod: "" sidecar.istio.io/inject: "false" creationTimestamp: null labels: app: jaeger spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 weight: 2 - preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le weight: 2 - preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x weight: 2 requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x containers: - env: - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: COLLECTOR_ZIPKIN_HTTP_PORT value: "9411" - name: MEMORY_MAX_TRACES value: "50000" image: docker.io/jaegertracing/all-in-one:1.5 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 3 httpGet: path: / port: 16686 scheme: HTTP periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 name: jaeger ports: - containerPort: 9411 protocol: TCP - containerPort: 16686 protocol: TCP - containerPort: 5775 protocol: UDP - containerPort: 6831 protocol: UDP - containerPort: 6832 protocol: UDP readinessProbe: failureThreshold: 3 httpGet: path: / port: 16686 scheme: HTTP periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: requests: cpu: 10m terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 status: availableReplicas: 1 conditions: - lastTransitionTime: 2018-10-02T02:32:23Z lastUpdateTime: 2018-10-02T02:32:23Z message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available - lastTransitionTime: 2018-10-02T02:32:23Z lastUpdateTime: 2018-10-02T02:32:27Z message: ReplicaSet "istio-tracing-ff94688bb" has successfully progressed. reason: NewReplicaSetAvailable status: "True" type: Progressing observedGeneration: 1 readyReplicas: 1 replicas: 1 updatedReplicas: 1

0 投票
2 回答
3619 浏览

kubernetes - 使用具有多个端口和协议的相同 Istio Gateway

我正在尝试使用两种不同的协议(GRPC 和 HTTP)配置 istio 网关

现在,我有两个不同的网关,分别用于 GRPC 和 HTTP,如下所示

是否可以使用具有不同协议和端口的相同网关?

0 投票
1 回答
1356 浏览

mongodb - 无法从 istio 访问外部 mongo db 服务器

我正在尝试使用 istio 和 envoy 为需要连接到外部 mongodB 服务器的服务实现服务网格,但由于某些原因,我的服务无法从 istio 代理访问外部 mongodB 服务器

下面是我的服务的网关和虚拟服务配置

我添加了出口服务条目,但仍然不起作用