我有一个k8s集群。我们的服务是基于队列的。我们的pod订阅一个事件队列,获取事件并执行任务。那么对于这种服务,如何定义k8s活性探针和就绪探针呢?
发布于 2020-07-03 06:49:50
假设您的问题是因为处理工作人员正在使用队列消息,它不会公开任何要检查的端口。
在这种情况下,您可以定义livenessProbe和readinessProbe自定义命令,下面是来自文献网的示例
apiVersion: v1
kind: Pod
metadata:
labels:
test: liveness
name: liveness-exec
spec:
containers:
- name: liveness
image: k8s.gcr.io/busybox
args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600
livenessProbe:
exec:
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5
periodSeconds: 5
readinessProbe:
exec:
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5
periodSeconds: 5此外,请记住,您的流程需要多少时间才能正常运行,并准备好调整initialDelaySeconds和periodSeconds,使其在完全失去活力之前不杀死吊舱。
发布于 2020-07-03 06:31:09
以下是对这些探测的非常简单的介绍:
活泼探测是为了让库伯内特斯知道一个工作负载是否正常。它可以是在容器中执行的shell命令,也可以是一个简单的tcp/http请求,它应该积极响应。
如果在pod配置中指定的超时期间后,活力检查失败,Kubrenetes将重新启动工作负载。
因此,如果您的工作负载正在进行耗时的过程,您可能需要给您的生动活泼探测足够的时间,以确保您的吊舱不会被不小心地重新启动。
红色探测是由Kubernetes代理来决定您的工作负载是否可以使用流量。只有当红色探测器积极响应时,交通才会被发送到你的舱内。因此,如果您的工作负载需要更多的时间来处理单个请求,并且需要将其他请求转移到其他副本进行快速处理,那么您可能需要给工作负载一个稍高的红度间隔。
这些探测参数,再加上副本的数量,可以确保应用程序的快速和健康运行。了解每个探针覆盖的面积以及你可以根据它们进行调整的参数是非常重要的。
以下是一些内容:
https://stackoverflow.com/questions/62709441
复制相似问题