gpt4 book ai didi

Kubernetes ClusterIP 服务初始延迟或活跃度

转载 作者:行者123 更新时间:2023-12-02 12:03:30 26 4
gpt4 key购买 nike

我在 GCP 上有一个 Kubernetes 部署和一个 ClusterIP 服务来发现这个部署中的 pod。部署包含多个副本集 pod,它们根据我们的水平 pod 标量配置(基于 CPU 利用率)来来去去。

现在,当创建新的副本集 pod 时,应用程序需要一些时间才能开始服务。但是 ClusterIP 在应用程序准备好之前已经开始将请求分发到新的副本集 pod,这导致请求没有被服务。

ClusterIP 服务 yaml:

apiVersion: v1
kind: Service
metadata:
labels:
app: service-name
tier: backend
environment: "dev"
creator: internal
name: service-name
spec:
clusterIP: None
ports:
- name: https
protocol: TCP
port: 7070
targetPort: 7070
selector:
app: dep-name
tier: "backend"
environment: "dev"
creator: "ME"
type: ClusterIP

应用程序启动后,如何通知 ClusterIP 开始向新 pod 分发请求?可以为此目的设置任何初始延迟或 active 探测吗?

最佳答案

Kubernetes 为它提供了就绪探测。使用就绪探测,Kubernetes 不会在探测成功之前将流量发送到 Pod。更新部署时,它还将使旧副本保持运行,直到对新副本的探测成功。这意味着如果您的新 pod 以某种方式损坏,它们将永远看不到流量,您的旧 pod 将继续为部署提供所有流量。

您需要使用以下就绪探测更新部署文件:

readinessProbe:
exec:
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5
periodSeconds: 5

如果您的应用程序有 http 探测,那么您也可以在 HTTP 模式下设置就绪探测。

有关如何使用就绪探针的更多信息,请参阅:

https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#define-readiness-probes

关于Kubernetes ClusterIP 服务初始延迟或活跃度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57456027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com