我有一个包含多个Independent1组件的程序。

在所有组件中添加 Activity 探针很简单,但是拥有一个 Activity 探针来确定程序所有组件的运行状况并不容易。

当其中任何一个失效时,如何使kubernetes查看多个 Activity 探针并重新启动容器?

我知道可以通过添加更多软件来实现,例如添加一个进行 Activity 检查的bash脚本,但是我正在寻找一种实现此目的的本地方法。

1“独立”是指一个组件的故障不会使其他组件发生故障。

最佳答案

Kubernetes API允许每个应用程序一种部署和一种就绪(部署/ POD)。我建议创建一个具有端点其余部分的验证集中化服务:

livenessProbe:
  httpGet:
    path: /monitoring/alive
    port: 3401
    httpHeaders:
    - name: X-Custom-Header
      value: Awesome
  initialDelaySeconds: 15
  timeoutSeconds: 1
  periodSeconds: 15


或尝试一项bash来完成相同任务,例如:
livenessProbe:
  exec:
    command:
      - bin/bash
      - -c
      - ./liveness.sh
  initialDelaySeconds: 220
  timeoutSeconds: 5


liveness.sh
#!/bin/sh
if [ $(ps -ef | grep java | wc -l) -ge 1 ]; then
  echo 0
else
  echo "Nothing happens!" 1>&2
    exit 1
fi

回顾在事件失败中可以看到的消息处理:
“警告不健康的Pod Liveness探针失败:没有任何反应!”

希望这可以帮助

09-25 20:26