Diagnostics Periodically Performed by Kubelet in Containers
To perform diagnostics, kubelet calls handlers implemented by the container. These diagnostics are crucial for monitoring container health and ensuring proper operation.
Kubelet Probe Handlers
- ExecAction: Executes a specified command inside the container. The diagnostic is considered successful if the command exits with status code 0.
- TCPSocketAction: Performs a TCP check on the container's IP address at a specified port. The diagnostic is considered successful if the port is active.
- HTTPGetAction: Performs an HTTP Get request to the container's IP address at a specified port and path. The diagnostic is considered successful if the response status code is greater than 200 and less than 400.
Kubelet Probe Types
- livenessProbe: Determines if a container is running. If this probe fails, kubelet kills the container.
- readinessProbe: Determines if a container is ready to serve requests. If this probe fails, the container is removed from service load balancers.
- startupProbe: Indicates whether the application within the container is started. All other probes are disabled until this probe succeeds.
Probe Results
Success
: The container passed the diagnostic check.
Failure
: The container failed the diagnostic check.
Unknown
: The diagnostic itself failed, so no action should be taken.
Kubelet Probe gRPC
Kubelet also supports probes using gRPC for applications that use this protocol for communication.