滚动部署中是否使用了 readinessprobe?

Is readinessprobe used amidst rolling deployment?

在下面的 yaml 语法中:

      readinessProbe:
        httpGet:
          path: /index.html
          port: 80
        initialDelaySeconds: 3
        timeoutSeconds: 3
        periodSeconds: 10
        failureThreshold: 3

在 Pod 的初始部署期间使用就绪探测。

  1. 为了推出新版本的应用程序,使用滚动部署策略, 就绪探测是否用于滚动部署?

  2. path & port 字段允许输入 url & 特定服务的端口号,但不是依赖服务。如何验证依赖服务是否也已准备好?

using rolling deployment strategy, Is readiness probe used for rolling deployment?

是的,新版本 Pods 已推出,旧版本 Pods 不会终止,直到新版本 Pods 在 就绪 状态。

例如如果你推出一个新版本,它有一个错误,所以 Pods 没有准备好 - 旧的 Pods 仍然是 运行 并且流量只路由到 准备就绪旧Pods.

此外,如果您未指定 readinessProbe,则使用 process 状态,例如终止的 进程 不会被视为 ready.

how to verify, if dependent service is also ready?

您可以配置自定义 readinessProbe,例如/healtz 上的 http 端点,由您决定要在该端点的实现中使用什么逻辑。 2xx 的 http 响应代码被视为 ready.