问题标签 [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 回答
695 浏览

javascript - 使用 Kubernetes 和 Ambassador 为静态网站提供服务

我有一个静态网站包,我想在我的集群上提供服务。捆绑包存储在谷歌云存储桶中,这让我觉得我实际上可能不需要单独的“服务器”来返回文件。

我已经能够让 Python-Flask 引用存储桶中的文件,但我似乎无法弄清楚如何让大使做同样的事情。我可以做一些事情,比如将包添加到 nginx 实例中,但我不想将 JS 包构建到任何 docker 映像中,这样我就可以进行快速更新。

我不知道如何设置大使路线来执行以下操作:

如果用户去

https://my-website.com/

他们index.html从我的 Google Bucket 获得服务my-bucket/index.html

当 index.html 在内部引用文件 (/static/js/main.js) 时,Ambassador 会提供在以下位置找到的文件my-bucket/static/js/main.js

我试过设置这样的服务:

但是导航到my-website.com/website/只会给我一个 503 错误,控制台抱怨“未声明纯文本文档的编码字符”

我觉得我做错了。我可以像这样使用大使直接从桶中提供服务,还是我真的需要像 nginx 这样的东西?

0 投票
0 回答
112 浏览

kubernetes - Istio 中的分布式跟踪 - 应用程序不传播标头时的预期行为

我的应用程序(托管在安装了 Istio 的 Kubernetes 集群中)不传播分布式跟踪标头(如此所述)。我的期望是 istio-proxy 仍应生成在 Jaeger 中可见的跟踪(由单个调用组成),即使整个调用链当然不会缝合在一起。但是,情况似乎并非如此,因为我在 Jaeger 中没有看到对我的应用程序的任何调用。

为了解决问题,我尝试了以下方法:

  • istio-proxy 容器部署为我的应用程序容器的侧车的日志看起来不错,我可以看到 Envoy 注册的应用程序的传入请求:
  • 我在 Mixer 的配置中启用了跟踪,现在我可以在 Jaeger UI 中看到 Mixer 的活动(但仍然没有调用我的应用程序的痕迹)。

    我是 Istio 的新手,看来我已经没有选择的余地了。

    首先,我的预期是否正确?当应用程序不传播分布式跟踪标头时,我是否应该在 Jaeger UI 中看到跟踪 - 每个都由一个调用组成?

    如果我的预期是正确的,我该如何进一步排除故障?我能否以某种方式验证 Envoy 配置并检查它是否确实将数据跟踪到 Mixer?

    如果我的期望不正确,是否可以覆盖 Istio 的行为以便我得到我需要的东西?

    谢谢你。

0 投票
2 回答
896 浏览

spring-boot - K8 服务内的 Envoy Pod 到 Pod 通信

配置 Envoy 时,是否可以向 Kubernetes 中属于同一 Service 的另一个 K8 Pod 发送 http Rest 请求?

重要提示:我在这里有另一个问题,指示我询问 Envoy 特定标签。

EG 服务名称 = UserService , 2 Pods (replica = 2)

连接结束休息GET 1.2.3.4:7079/user/1

主机 + 端口的值取自kubectl get ep

两个 pod IP 都在 pod 之外成功工作,但是当我kubectl exec -it进入 pod 并通过 CURL 发出请求时,它返回 404 not found 端点。

Q我想知道是否可以向同一 Service 中的另一个 K8 Pod 发出请求? 回答:这绝对是可能的

Q为什么我可以成功ping 1.2.3.4,但不能点击 Rest API?

Q配置 Envoy 时,是否可以直接从另一个 Pod 请求一个 Pod IP?

请让我知道需要哪些配置文件或需要输出才能进行,因为我是 K8 的完整初学者。谢谢。

下面是我的配置文件

部署.yml

服务.yml

从主执行

从 k8 master 执行

从同一微服务的 pod 内部执行

从同一微服务的 pod 内部执行

编辑 2: 'kubectl get -o yaml deployment' 的输出

'kubectl get -o yaml svc $the_service' 的输出

0 投票
1 回答
1343 浏览

kubernetes - 没有网络加入的其他命名空间中的 OpenShift 访问服务

我是 OpenShift 新手。我有两个项目|命名空间。在每个我都有一个休息服务。我想要的是来自 NS1 的服务,来自 NS2 的访问服务,无需加入项目网络。还有带有多租户插件的SDN。

我找到了有关如何将外部服务作为本机添加到集群的示例。在 NS1 中,我为服务表单 NS2 的外部 IP 创建了一个端点,但是当我尝试在 NS1 中为此端点创建一个服务时,它失败了,因为没有类型标签(示例中也没有)。

我也试过外部名称。对于 externalName 键,我的值是在 NS2 中服务的路由器的 URL。但它不能很好地工作,因为它总是返回给我一个应用程序不可用的页面。但 app\service 有效。

0 投票
1 回答
1318 浏览

proxy - Envoy INVALID_ARGUMENT:static_resources.clusters[0].hosts[0]:无效名称 url:找不到字段

我在 OpenShift 集群中使用 Istio Pilot-agent 代理。

我有一个错误(INVALID_ARGUMENT:static_resources.clusters[0].hosts[0]: invalid name url: Cannot find field....

配置:

0 投票
1 回答
456 浏览

kubernetes - 404 使用 Istio 从 K8s pod 中点击 `metadata.google.internal`

我们有一个应用程序正在尝试迁移到 Istio 网格中。其中一项服务发出请求以metadata.google.internal完成环境配置。

我创建了 ServiceEntry 类型对象到白名单metadata.google.internal,如下(尝试了不同的组合):

由于某种原因,我无法获得正确的响应,因此服务失败。在服务中检查istio-proxy容器上的日志时,这是我得到的错误:

正如你所看到的,我收到了 200 个请求/computeMetadata/v1/project/project-id,但它失败了/。不知道为什么。

使用istio-sidecar-injectorpod 一切似乎都很好。日志中没有什么要指出的。

我所做的是使用 Istio 在同一个集群、同一个命名空间中创建一个简单的部署,并手动远程登录元数据服务器:

我不明白为什么我会收到这些 404。知道发生了什么吗?

0 投票
4 回答
16454 浏览

nginx - 是否可以在 k8s Ingress Controller 中重写 HOST 标头?

由于一些依赖 Host 标头才能正常运行的遗留应用程序,我需要一个能够重写 Host 标头并将其传递给下游(后端)的 Ingress(代理等)。是否有任何支持此功能的入口控制器?

例子:

最终用户通过foo.com/afor backendafoo.com/bfor backend访问我们的网站b。但由于aandb是旧版应用程序,它只接受:

  • a接受连接时Host: a.foo.com
  • b接受连接时Host: b.foo.com
0 投票
0 回答
685 浏览

kubernetes - 同一 istio-proxy 部署的不同端口上的多个网关未按预期工作

1. 安装 Istio (1.0.2)

2.创建两个Deployments及其对应Service的s

3.创建两个Gateways及其对应的NodePorts

4.VirtualService为每个创建sGateway

5. 测试


由于30001绑定到gateway-a哪个virtualservice-a指向service-a,并且30002绑定到gateway-b哪个virtualservice-b指向service-b,我希望结果是:

发生了什么,我怎样才能让它工作?

附言

  1. 我知道两种istio-ingressgateway部署是可能的,但是我可以只用一个来实现相同的结果吗?
  2. 另一种可能性是只使用 oneVirtualService和 oneGateway并设置portin HTTPMatchRequest,但这仍然不是我想要的。
  3. 是的,我希望主机名相同。网关不是相互隔离的吗?

我想要的是在相同istio-proxy (docker.io/istio/proxyv2:1.0.2)部署的不同端口上拥有两个网关,并拥有各自对应的一组虚拟服务,而不会相互影响。那可能吗?

0 投票
2 回答
4828 浏览

python - Docker 安装了 python 3.5.2 而不是 python 3.6

我不明白为什么python 3.5.2安装而不是python 3.6. 所以我无法执行我的 python 文件,因为我使用了仅在python 3.6.

也许有人可以帮助我?

0 投票
2 回答
308 浏览

python - 将 Envoy Dockerfile 基础镜像更新为 python 3.6+

我尝试将特使基础映像中的 python 版本更新为python-3.6. 但它不起作用。

这是我必须使用的基本映像(Envoy 代理),python-3.5.2默认情况下 具有https://github.com/envoyproxy/envoy/blob/master/ci/Dockerfile-envoy-image

这是我使用 deadsnake/ppa apt-get 更新的版本

非常感谢您的帮助或一些提示,以自行找到解决方案。