Kubernetes, active 探测失败,但 Pod 处于运行状态

标签 kubernetes

我正在尝试使用 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

路径“index2”不存在,我想测试一个失败的部署。问题是当我执行:
 kubectl get pods -o wide

几秒钟内,其中一个 pod 处于“正在运行”状态
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>

几秒钟后,当 live 总是失败时,一个 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>

在将它运行回 CrashLoopBackOff 之后,问题是,如果 livenesprobe 总是失败,为什么它会在几秒钟内保持运行?

提前致谢

最佳答案

你应该看看 Readiness probe相反,或两者兼而有之。

Readiness and liveness probes can be used in parallel for the same container. Using both can ensure that traffic does not reach a container that is not ready for it, and that containers are restarted when they fail.



Liveness probe检查您的应用程序是否在您的 中处于健康状态已经在运行 pod .

Readiness probe实际上会检查您的 pod 是否准备好接收流量。因此,如果没有 /index2 端点,它永远不会显示为 运行

关于Kubernetes, active 探测失败,但 Pod 处于运行状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54039652/

相关文章:

kubernetes - Kubernetes 将环境变量传递给 "kubectl create"

amazon-web-services - Grafana 中的 Kubernetes Pod 和节点没有数据点 - Prometheus Dashboard

azure - Azure 中的 Kubeconfig

kubernetes - apiserver 可以通过CNI 提供的网络连接到节点的Kubelet 端口吗?

kubernetes - 使用 kustomize 修改 nodeSelector 的

java - 有没有办法在 Java 中获取 Activity Kubernetes Pod 的数量

c# - .net core 2.0 在 Kubernetes pod 控制台中进行日志记录

kubernetes - 如何从外部网络访问 Kubernetes Dashboard

docker - Kubernetes Pod上没有出站网络

kubernetes - kustomize 是否适用于 k8s 反向链接?