第 5 章 将应用从 OpenShift 4 上的 JBoss EAP Imagestreams 迁移到 eap73 Imagestreams
为 eap71 和 eap
72
镜像流开发的应用需要更改,才能在 eap73
镜像流中正常工作。
5.1. eap73 镜像流的存活度和就绪度探测配置更新
从 OpenShift 3.11 上运行的 eap72 镜像迁移到任何 eap
73
镜像时,必须调整探测的 YAML
配置。
在 eap72
镜像中,存活度探测的默认 YAML
配置类似如下代码示例:
OpenShift 3.11 存活度探测上的 eap72
镜像的 YAML
配置示例
livenessProbe: exec: command: - /bin/bash - '-c' - /opt/eap/bin/livenessProbe.sh initialDelaySeconds: 60 periodSeconds: 10 successThreshold: 1 failureThreshold: 3
在本例中,存活度探测位于 JBoss EAP 镜像中的 /opt/eap/bin/livenessProbe.sh
。该探测会在 60 秒初始延迟后第一次触发,然后在 JBoss EAP 服务器上启动 pod 后每隔 10 秒触发一次。
三个失败的探测失败后,容器就被视为不健康,OpenShift 将在其容器集中重新启动容器。
在 eap72
镜像上,一个调用会持续 5 秒,然后返回为成功或失败。调用后跟 10 秒等待期。这意味着,如果 JBoss EAP 镜像不健康,则在 pod 内的容器重启前 3 次调用持续大约 35 秒。
在任何 eap73
镜像上,一个调用会持续不到 1 秒。三个调用持续大约 23 秒。在 YAML
配置中,应对 eap73
镜像的探测配置进行如下调整:
任何 eap73
镜像流存活度探测的 YAML
配置示例
livenessProbe: exec: command: - /bin/bash - '-c' - /opt/eap/bin/livenessProbe.sh initialDelaySeconds: 60 periodSeconds: 16 successThreshold: 1 failureThreshold: 3
在这个示例中,periodSeconds
增加了 6 秒。现在,第一个调用持续 1 秒,后跟 16 秒等待期间。三个调用将持续大约 34 秒,这与探测的 eap72
镜像行为几乎等同。
在就绪度探测中,使用类似值在 YAML
配置中更新 periodSeconds
。
任何 eap73
镜像流就绪度探测的 YAML
配置示例
readinessProbe: exec: command: - /bin/bash - '-c' - /opt/eap/bin/readinessProbe.sh initialDelaySeconds: 10 periodSeconds: 16 successThreshold: 1 failureThreshold: 3