Deployment 如何配置所有POD以立即开始接受请求连接?

Deployment 如何配置所有POD以立即开始接受请求连接?,deployment,kubernetes,microservices,devops,Deployment,Kubernetes,Microservices,Devops,我使用k8s部署了微服务。存在一些微服务间API调用。问题是,当我执行发布部署时,服务开始根据应用程序平台在40到100秒内随机接受请求。因此,一些服务会更早地开始接受请求,而其他服务则会花更多的时间来接受第一个请求。这里有些API调用是服务依赖的。因此,在未执行完全部署之前,由于依赖服务的延迟部署,应用程序会抛出错误。我已经实现了滚动更新以实现平滑部署,因此在部署特定应用程序期间不会出现停机。但是,新版本中可能会添加新的API端点,这会影响其他应用程序,直到它开始接受请求为止 在部署期间,是否

我使用k8s部署了微服务。存在一些微服务间API调用。问题是,当我执行发布部署时,服务开始根据应用程序平台在40到100秒内随机接受请求。因此,一些服务会更早地开始接受请求,而其他服务则会花更多的时间来接受第一个请求。这里有些API调用是服务依赖的。因此,在未执行完全部署之前,由于依赖服务的延迟部署,应用程序会抛出错误。我已经实现了滚动更新以实现平滑部署,因此在部署特定应用程序期间不会出现停机。但是,新版本中可能会添加新的API端点,这会影响其他应用程序,直到它开始接受请求为止

在部署期间,是否有任何方法可以配置所有POD在特定时间立即开始接受请求


假设我必须在当前版本中更新5个服务。然后,所有新的5个POD应该立即开始接受请求

如果我理解正确,您希望实现服务依赖性,这样依赖性服务就不会启动,除非启动它们所需的服务。您可以使用initContainers实现这一点,如下所示:

spec:
  template:
    spec:
      initContainers:
      - name: waitfor
        image: jwilder/dockerize
        args:
        - -wait
        - "http://config-srv:7000/actuator/health"
        - -wait
        - "http://registry-srv:8761/actuator/health"
        - -wait
        - "http://rabbitmq:15672"
        - -timeout
        - 600s
      containers:
      - 

在该示例中,主容器将不会启动,直到三个必需的服务已经启动并且可以通过HTTP访问。这就是你想要实现的吗?

不是。问题不同。我很抱歉。我无法正确地解释这个问题。依赖服务已经在现有POD中成功运行了健康检查。因此,您的解决方案无法工作,因为每次健康检查都会成功。假设我必须在当前版本中更新5个pod。然后所有新的5个吊舱应该立即开始接受连接。Kubernetes不提供这种类型的保证。您必须编写自己的逻辑来监视pod的创建并适当地更新服务端点。