Kubernetes Container Probes: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 26: Line 26:
{{External|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#httpgetaction-v1-core}}
{{External|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#httpgetaction-v1-core}}


=Container Startup Check=
=Container Liveness Check=
=Container Liveness Check=



Revision as of 23:32, 2 October 2019

External

Internal

Overview

A probe is a diagnostic performed periodically by the kubelet on a container. To perform the diagnostic, the kubelet calls a handler, that must be declared and implemented by the container.

Handlers

A handler is a piece of logic declared and implemented by the container, which is used by Kubernetes control mechanism to draw conclusions about the state the container is in There are three types of handlers.

ExecAction

https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#execaction-v1-core

The exec action (declared as "exec:") executes a specified command inside the container. The diagnostic is considered successful if the command exits with a status code of 0.

TCPSocketAction

https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#tcpsocketaction-v1-core

HTTPGetAction

https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#httpgetaction-v1-core

Container Startup Check

Container Liveness Check

The result of the container liveness check is used by Kubernetes to know when to restart the container (Not the pod? How about atomicity?)

Container Readiness Check

The result of the container readiness check is used by Kubernetes to know when the container is ready to accept traffic. The pod is considered ready wen all of its containers are ready. The readiness check is used by services to decide whether to send traffic into the pod or not. Container will be removed from service endpoints if the probe fails.

Probe Template

https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.14/#probe-v1-core
kind: Pod
spec:
  containers:
  - name: ...
    readinessProbe|livenessProbe:
      exec:

Example:

readinessProbe:
  exec:
    command:
    - /bin/sh
    - -c
    - nodetool status | grep -E "^UN\s+${POD_IP}"
  failureThreshold: 3
  initialDelaySeconds: 90
  periodSeconds: 30
  successThreshold: 1
  timeoutSeconds: 5

Elements

initialDelaySeconds

Specifies the number of seconds after the container has started before liveness probes are initiated.

failureThreshold

periodSeconds

successThreshold

timeoutSeconds