kubernetes - k8s 应用程序容器中的出站请求中的连接被拒绝错误。伊斯蒂奥?
问题描述
更新
我有一些脚本可以初始化我们的服务。由于脚本中的第一个出站请求(到外部服务)中的连接被拒绝
错误,
该脚本在容器中运行时失败。
我们尝试添加一个使 curl 循环的循环,如果失败,请重试,否则 - 继续执行脚本。
有时第一次成功,有时连续失败10-15次。
我们最近开始使用 istio
可能是什么原因?
解决方案
这是一个著名的 istio 错误https://github.com/istio/istio/issues/11130(在 Istio 的 sidecar 完全运行之前,App 容器无法连接到网络)似乎 Istio 代理不会并行启动,它正在等待让应用容器准备就绪。一位博主提到的顺序启动序列(https://medium.com/@marko.luksa/delaying-application-start-until-sidecar-is-ready-2ec2d21a7b74)引用:most Kubernetes users assume that after a pod’s init containers have finished, the pod’s regular containers are started in parallel. It turns out that’s not the case.
容器将按照部署规范 YAML 定义的顺序启动。所以最大的问题是 Istio 代理特使是否会在第一个容器卡在 curl-loop 时启动。(鸡蛋和鸡肉问题)。应用程序容器脚本执行:
until curl --head localhost:15000 ; do echo "Waiting for Istio Proxy to start" ; sleep 3 ; done
据我所见:该脚本无济于事。代理已启动,但与外部主机名的连接返回“连接被拒绝”
推荐阅读
- java - 是否有与 C# 中的 AttributeUsage(AttributeTargets.Property) 等效的 Java
- reactjs - 类型“未知 []”缺少“初始状态”类型的以下属性
- arrays - 解析一个困难的 MongoDB 字段(带有多级数组)
- r - r:将文本添加到绘图而不被截断
- ios - SwiftUI .contextMenu 使用 clipShape 在我的视图周围有可见的填充
- javascript - HTML 下载属性不起作用:充当普通链接
- r - R - httr 向网站investing.com POST 请求以获取JSON 响应
- swift - 如何使用相同的时钟视图显示不同的时区?迅捷
- python-3.x - python windows如何强制退出或加入线程
- angular - Angular 资产仅适用于 localhost