我有使用k8s部署的微服务。有一些微服务间API调用。问题是当我执行发布部署时,服务将基于应用程序平台在40到100秒内开始随机接受请求。因此,某些服务会更早开始接受请求,而其他服务则需要更多时间来接受第一个请求。这里有些API调用是服务相关的。因此,在不执行完全部署之前,由于相关服务的延迟部署,应用程序将引发错误。我已经实现了滚动更新以实现平稳部署,因此在部署特定应用程序期间不会出现停机。但是,可能会在新版本中添加新的API端点,这会影响其他应用程序,直到它开始接受请求为止。
在部署期间,有什么方法可以配置所有Pod以在特定时间一次开始接受请求?
比方说,我必须在当前版本中更新5个服务。然后,所有新的5个Pod都应立即开始接受请求。
答案 0 :(得分:1)
如果我对您的理解正确,那么您希望实现服务依赖项,以便从属服务除非启动了所需的服务,否则不会启动。您可以使用initContainers这样实现该目标:
value="[+-]"
在该示例中,只有启动了三个必需的服务并且这些服务可以通过HTTP到达,主容器才会启动。这是您想要实现的吗?