我正在尝试使用kubernetes进行蓝绿色部署,我已经按照https://www.ianlewis.org/en/bluegreen-deployments-kubernetes进行部署了,没关系。我添加了一个活力探测器来执行健康检查,
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: flask-1.3
spec:
replicas: 2
template:
metadata:
labels:
name: app
version: "1.3"
spec:
containers:
- name: appflask
image: 192.168.99.100:5000/fapp:1.2
livenessProbe:
httpGet:
path: /index2
port: 5000
failureThreshold: 1
periodSeconds: 1
initialDelaySeconds: 1
ports:
- name: http
containerPort: 5000
Run Code Online (Sandbox Code Playgroud)
路径“ index2”不存在,我要测试失败的部署。问题是当我执行时:
kubectl get pods -o wide
Run Code Online (Sandbox Code Playgroud)
几秒钟后,其中一个Pod处于“ RUNNING”状态
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
flask-1.3-6c644b8648-878qz 0/1 CrashLoopBackOff 6 6m19s 10.244.1.250 node <none> <none>
flask-1.3-6c644b8648-t6qhv 0/1 CrashLoopBackOff 7 6m19s 10.244.2.230 nod2e <none> <none>
Run Code Online (Sandbox Code Playgroud)
几秒钟后,当实时失败时,一个pod正在运行:
NAME READY STATUS RESTARTS AGE
IP NODE NOMINATED NODE READINESS GATES
flask-1.3-6c644b8648-878qz 1/1 Running 7 6m20s 10.244.1.250 node <none> <none>
flask-1.3-6c644b8648-t6qhv 0/1 CrashLoopBackOff 7 6m20s 10.244.2.230 nod2e <none> <none>
Run Code Online (Sandbox Code Playgroud)
然后将其运行回到CrashLoopBackOff之后,问题是,如果livenesprobe总是失败,为什么为什么要在几秒钟内保持运行状态?
提前致谢
您应该查看Readiness 探针,或者同时查看两者。
就绪探针和活性探针可以对同一容器并行使用。使用两者可以确保流量不会到达尚未准备好的容器,并且容器在失败时重新启动。
Liveness 探针检查您的应用程序在已运行的 pod中是否处于健康状态。
就绪探针实际上会检查您的 Pod 是否已准备好接收流量。因此,如果没有/index2端点,它永远不会显示为正在运行
| 归档时间: |
|
| 查看次数: |
1139 次 |
| 最近记录: |