readinessProbe: # Readiness Probe
httpGet: # HTTP GET定义
path: /actuator/health
port: 8089
initialDelaySeconds: 30 # 容器启动后多久开始探测
timeoutSeconds: 5 # 表示容器必须在5s内做出相应反馈给probe,否则视为探测失败
periodSeconds: 30 # 探测周期,每30s探测一次
successThreshold: 1 # 连续探测1次成功表示成功
failureThreshold: 6 # 连续探测6次失败表示失败
livenessProbe: # Readiness Probe
httpGet: # HTTP GET定义
path: /actuator/health
port: 8089
initialDelaySeconds: 60 # 容器启动后多久开始探测
timeoutSeconds: 5 # 表示容器必须在5s内做出相应反馈给probe,否则视为探测失败
periodSeconds: 60 # 探测周期,每30s探测一次
successThreshold: 1 # 连续探测1次成功表示成功
failureThreshold: 6 # 连续探测6次失败表示失败
initContainers:
- name: init-redis
image: busybox:1.31
command: ['sh', '-c', 'until nslookup redis-server; do echo waiting for redis; sleep 2; done;']
- name: init-mysql
image: busybox:1.31
command: ['sh', '-c', 'until nslookup mysql-server; do echo waiting for mysql; sleep 2; done;']
上面这一示例定义了两个 init container,一个用来检查 redis 是否启动成功,
另外一个用来检查 mysql 是否启动成功,开始部署的时候,
首先会通过 nslookup 检查 redis 是否成功启动,检测到 redis 启动了之后,
域名解析也就会成功,然后会检查 mysql 的状态,mysql 也成功启动之后才会开始启动