问题标签 [istio]
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.
service - Istio 中的 Mixer 和 Pilot 有什么区别?
我已阅读文档,但似乎无法理解 Mixer 和 Pilot 之间的区别。有没有重叠?我的意思是我想在他们之间划出一个明确的界限,以了解他们的职责以及他们与网格中的特使代理的通信。如果可能,请添加不同用例的示例。
docker - bookinfo 示例应用程序在 istio 上崩溃
我正在尝试评估 istio 并尝试部署与 istio 安装一起提供的 bookinfo 示例应用程序。在这样做时,我面临以下问题。
问题:
istio 客户端和控制平面组件的安装非常顺利。
控制平面也可以正常启动。
但是,当我启动 bookinfo 应用程序时,该应用程序的代理初始化容器会崩溃,并显示一条神秘的“iptables:链已存在”日志消息。
trace - Istio 跟踪问题
我在 Istio 网站上做了一个类似于 bookinfo 应用程序的简单的 3 层服务。除了使用 zipkin 或 jaeger 进行跟踪外,一切似乎都运行良好。
澄清一下,我有 3 个服务 S1、S2、S3,它们都非常相似且微不足道,向下游传递请求并做一些工作。我可以在跟踪中看到 S1 和 S2,但看不到 S3。我进一步缩小了范围,当我使用 Istio 版本 0.5.0 时,我也可以在跟踪中看到 S3,但只是过了一段时间,但是,使用 Istio 版本 0.5.1,我只能看到 S1 和 S2在跟踪中,即使服务正常工作并且调用一直向下传播到 S3。
我能看到的唯一区别(我不确定这是否是一个问题)是 istio-proxy 中使用 istio 版本 0.5.0 的 S3 输出,但不是 0.5.1
“GET /readiness HTTP/1.1” 200 - 0 39 1 1 “-” “kube-probe/1.9+” “0969a5a3-f6c0-9f8e-a449-d8617c3a5f9f” “10.XX18:8080” “127.0.0.1:8080”
如果需要,我可以添加确切的 yaml 文件。此外,我不确定跟踪是否应该来自 istio-proxy,正如它在 istio 文档中显示的那样,但就我而言,我没有看到 istio-proxy,而只看到了 istio-ingress。
kubernetes - 在 Istio 中配置通过 PublicIP 将私有网络 IP 分配给 Pod
当我在 Istio 中部署示例 Bookinfo 应用程序时,我遇到了将公共 IP(172.16/...) 自动分配给 Pod 的问题。
现在我在云上的这个应用程序上运行,有什么方法可以配置 Istio(或 Kubernetes)来分配可用于 pod 的专用网络 IP,而不是像在本地机器中那样自动分配 PublicIP。
我知道在本地机器部署中只有 PublicIP 可用,因此这是一个自动选择。但是这里我们有可用于 Pod 的公共和私有网络 IP,因此是否有可能进行配置?
kubernetes - istioctl 命令给我错误“/home/ubuntu/.kube/config”不存在
我正在跟进 IstioSetup 中 istio 文档中的示例
我可以按照文档中的方式安装 istio 但是当我尝试运行 istioctl 命令示例时istioctl kube-inject -f samples/bookinfo/kube/bookinfo.yaml
出现如下错误
我已经使用 kismatic install 安装了 kubernetes 集群,并在安装 Kubernetes 1.9 和使用和不使用 ingress 的最后使用不同版本安装了多个。我在集群版本和非集群版本中尝试过相同的错误。
kubernetes - Istio 分布式跟踪仅显示 1 个跨度
我正在使用 Zipkin 遵循本指南。我涉及 3 个微服务A -> B -> C
,我正在将标头从 A 传播到 B,从 B 传播到 C。但是在 Zipkin 仪表板中,我只看到 and 的条目,A -> B
而B -> C
不是A -> B -> C
。
这些是标题:
我可以看到在 Bx-b3-parentspanid
中是空的,我想这是错误的,但我认为另一个正在工作......这怎么可能?
编辑:添加代码片段以显示标头传播
A -> B
传播:
...
B -> C
传播:
...
kubernetes - ISTIO: enable circuit breaking on egress
I am unable to get circuit breaking configuration to work on my elb through egress config.
ELB elb has success rate of 25% (75% 500 error & 25% with status 200), the elb has 4 instances, only 1 returns a successful response, other instances are configured to returns 500 error for testing purpose.
Setup
k8s: v1.7.4
istio: 0.5.0
- env: k8s on aws
Egress rule
Destination Policy
Route rules: not set
Testing
.
Sending requests in parallel from the pod
kubernetes - 基于 headers 用户代理的 Istio RouteRule 不起作用
我在 minikube 上运行了两个服务,Foo
并且Bar
. 当我访问该Foo
服务时,它会请求Bar
服务以检索一些数据。Bar
服务有 2 个版本"1.0"
和"2.0"
. 我已经设置了默认RouteRule
配置,istio
将所有请求路由到"1.0"
:
它工作正常,我可以看到所有请求都转发到"1.0"
. 现在我想RouteRule
根据标题添加另一个,所以来自Chrome
浏览器的所有请求都将被转发到"2.0"
:
它不起作用。所有请求仍然路由到"1.0"
. 我可以看到RouteRule
已创建:
我可以在浏览器的开发人员工具中看到UserAgent
标题存在。如何调试请求以查看为什么不转发到"2.0"
?
kubernetes - Istio RouteRules 不能一起工作
我有两个 IstioRouteRule
用于httpDelay
:
对于httpReqTimeout
:
但是,我无法使这两者RouteRules
一起工作。对于此配置,我有延迟,foo-server
但请求超时不起作用,因此我从foo-server
. 我试图改变httpDelay
规则precedence: 2
。在这种情况下,根本不会有任何延迟,我认为httpReqTimeout
工作正常。在这两种情况下,我都可以看到创建了两个规则:
为什么这两个不RouteRules
一起工作?
grpc - 如何使用 envoy、nomad 和 consul 配置 gRPC 请求的动态路由
我们使用nomad将我们的应用程序(提供gRPC端点)部署为任务。然后使用nomad 的 service stanza将任务注册到Consul。
我们的应用程序的路由是通过envoy proxy实现的。我们在 IP 上运行负载均衡的中央特使实例10.1.2.2
。
路由到哪个端点/任务的决定当前基于host
标头,并且每个任务都注册为<$JOB>.our.cloud
. 这导致了两个问题。
访问服务时,必须为负载均衡器 IP 注册 DNS 名称,这会导致
/etc/hosts
类似的条目使用 可以部分缓解这个问题
dnsmasq
,但是当我们添加新服务时仍然有点烦人。不可能同时运行多个提供相同 gRPC 服务的服务。例如,如果我们决定测试一个服务的新实现,我们需要以
job
相同的名称以相同的名称运行它,并且需要实现在 gRPC 服务文件中定义的所有服务。
我们一直在讨论的一个可能的解决方案是使用tags
该service
节的 来添加定义提供的 gRPC 服务的标签,例如:
但是Consul不鼓励这样做:
现在我们正在考虑使用像这样的标签来做这件事grpc-my-company-firstpackage__ServiceA
......这看起来真的很恶心,虽然:-(
所以我的问题是:
- 有没有人做过这样的事情?
- 如果是这样,关于如何路由到由 Consul 自动发现的 gRPC 服务有什么建议?
- 有人对此有其他想法或见解吗?
- 这是如何在例如istio中完成的?