运行istio-proxy后启动容器/容器

时间:2018-10-22 19:30:59

标签: kubernetes istio envoyproxy

我正在尝试使用Istio和Envoy通过Kubernetes为服务实现服务网格。我能够设置服务和istio-proxy,但无法控制启动容器和istio-proxy的顺序。

我的容器是第一个启动的容器,它尝试通过TCP访问外部资源,但那时istio-proxy尚未完全加载,因此外部资源的ServiceEntry也是如此

我尝试在服务中添加紧急情况,还尝试了5秒钟的睡眠,然后才访问外部资源。

是否可以控制这些顺序?

3 个答案:

答案 0 :(得分:2)

除了在容器规格中以特定顺序列出容器外,我认为您无法控制其他顺序。因此,我建议您配置Readiness Probe,以便在服务可以向外部发送一些流量之前,您尚未准备好Pod。

答案 1 :(得分:1)

Github问题在这里:

Support startup dependencies between containers on the same Pod

  

我们目前建议开发人员解决此问题   通过在其应用程序容器上运行启动脚本来自己   这会延迟应用程序启动,直到Envoy收到其初始信息为止   组态。但是,这有点麻烦,需要更改   到每个开发人员的容器中。

答案 2 :(得分:1)

在istio 1.7.X及更高版本上,您可以添加配置选项a is int +a is int b is char +b is int c is short +c is int ,这将导致sidecar注入器在pod容器列表的开头注入sidecar并将其配置为阻止所有其他容器的开始直到代理就绪为止。默认情况下,此选项是禁用的。

根据https://istio.io/latest/news/releases/1.7.x/announcing-1.7/change-notes/