This topic describes how to configure liveness probes and readiness probes to perform health checks on containers.
Features
Elastic Container Instance allows you to use liveness probes and readiness probes to check the condition and running status of containers.
Probe | Description | Scenario |
Liveness probe | Liveness probes are used to check whether a container is working as expected. If the check succeeds, the container is working as expected. If the check fails, the system determines whether to restart the container based on the configured container restart policy. By default, if a liveness probe is not configured, the container is considered to be working as expected all the time. |
|
Readiness probe | Readiness probes are used to check whether a container is ready to serve requests. If the check succeeds, the container is ready to receive business requests. If the check fails, the container is not ready and the system stops sending requests to the container until the recheck succeeds. | An application may be temporarily unable to serve external traffic when they load a large amount of data or configuration files during startup. In this case, if you do not want to terminate the application or send it requests, you can use readiness probes to detect and mitigate such situations. |
Configurations
API mode
When you create an elastic container instance by calling the CreateContainerGroup operation, you can use the LivenessProbe and ReadinessProbe parameters to configure liveness probes and readiness probes. The following table describes the parameters. For more information, see CreateContainerGroup.
LivenessProbe related parameters
Parameter | Type | Required | Example | Description |
Container.N.LivenessProbe.HttpGet.Path | String | No | /healthyz | The path to which HTTP GET requests are sent when you use HTTP requests to perform health checks. |
Container.N.LivenessProbe.HttpGet.Port | Integer | No | 8888 | The port to which HTTP GET requests are sent when you use HTTP requests to perform health checks. |
Container.N.LivenessProbe.HttpGet.Scheme | String | No | HTTP | The protocol type of HTTP GET requests when you use HTTP requests to perform health checks. Valid values:
|
Container.N.LivenessProbe.InitialDelaySeconds | Integer | No | 5 | The number of seconds between the time when the startup of the container ends and the time when the check starts. |
Container.N.LivenessProbe.PeriodSeconds | Integer | No | 1 | The interval at which the container is checked. Default value: 10. Minimum value: 1. Unit: seconds. |
Container.N.LivenessProbe.SuccessThreshold | Integer | No | 1 | The minimum number of consecutive successes for the probe to be considered successful after having failed. Default value: 1. Set the value to 1. |
Container.N.LivenessProbe.FailureThreshold | Integer | No | 3 | The minimum number of consecutive failures for the probe to be considered failed after having succeeded. Default value: 3. |
Container.N.LivenessProbe.TimeoutSeconds | Integer | No | 1 | The timeout period of the health check. Default value: 1. Minimum value: 1. Unit: seconds. |
Container.N.LivenessProbe.Exec.Command.N | RepeatList | No | cat /tmp/healthy | Command N to be executed in the container when the health check is performed by using the command line. |
Container.N.LivenessProbe.TcpSocket.Port | Integer | No | 8000 | The port detected by Transmission Control Protocol (TCP) sockets when you use TCP sockets to perform health checks. |
ReadinessProbe related parameters
Parameter | Type | Required | Example | Description |
Container.N.ReadinessProbe.HttpGet.Path | String | No | /healthyz | The path to which HTTP GET requests are sent when you use HTTP requests to perform health checks. |
Container.N.ReadinessProbe.HttpGet.Port | Integer | No | 8888 | The port to which HTTP GET requests are sent when you use HTTP requests to perform health checks. |
Container.N.ReadinessProbe.HttpGet.Scheme | String | No | HTTP | The protocol type of HTTP GET requests when you use HTTP requests to perform health checks. Valid values:
|
Container.N.ReadinessProbe.InitialDelaySeconds | Integer | No | 5 | The number of seconds between the time when the startup of the container ends and the time when the check starts. |
Container.N.ReadinessProbe.PeriodSeconds | Integer | No | 1 | The interval at which the container is checked. Default value: 10. Minimum value: 1. Unit: seconds. |
Container.N.ReadinessProbe.SuccessThreshold | Integer | No | 1 | The minimum number of consecutive successes for the probe to be considered successful after having failed. Default value: 1. Set the value to 1. |
Container.N.ReadinessProbe.FailureThreshold | Integer | No | 3 | The minimum number of consecutive failures for the probe to be considered failed after having succeeded. Default value: 3. |
Container.N.ReadinessProbe.TimeoutSeconds | Integer | No | 1 | The timeout period of the health check. Default value: 1. Minimum value: 1. Unit: seconds. |
Container.N.ReadinessProbe.Exec.Command.N | RepeatList | No | cat /tmp/healthy | Command N to be executed in the container when the health check is performed by using the command line. |
Container.N.ReadinessProbe.TcpSocket.Port | Integer | No | 8000 | The port detected by Transmission Control Protocol (TCP) sockets when you use TCP sockets to perform health checks. |
Console mode
When you create an elastic container instance on the buy page in the Elastic Container Instance console, you can click Advanced Settings in the Container Configurations section and enable Health Check. The following figure shows the configuration details.
When you configure health check in the Elastic Container Instance console, only the command line and HTTP request methods are supported. The TCP socket method is not supported.

The following table describes the parameters.
Parameter | Description |
Time Settings | You must set Waiting Period and Timeout Period.
|
Method | Valid values:
|
Script | When you select Script for Method, you must configure the command line script to be executed in the container. |
HTTP Request Method | When you select HTTP Request Method for Method, you must configure the path, port, and protocol for HTTP GET requests. |
Configuration examples
In this example, an elastic container instance that has a liveness probe and readiness probe configured is created and contains an NGINX container. Then, service exceptions are simulated to check whether the configured probes take effect.
Create an elastic container instance by using SDK for Java.
Create an elastic container instance by using an NGINX image. The following sample code shows how to configure a liveness probe and a readiness probe:
// Configure a liveness probe. After the container is running for 5 seconds, the kubelet runs the liveness probe on port 80 every 3 seconds. The timeout period of each probe is set to 10 seconds. The minimum number of consecutive successes is set to 3, and the minimum number of consecutive failures is also set to 3. CreateContainerGroupRequest.Container.ContainerProbe livenessProbe = new CreateContainerGroupRequest.Container.ContainerProbe(); livenessProbe.setTcpSocketPort(80); livenessProbe.setInitialDelaySeconds(5); livenessProbe.setPeriodSeconds(3); livenessProbe.setFailureThreshold(3); livenessProbe.setSuccessThreshold(1); livenessProbe.setTimeoutSeconds(10); // Configure a readiness probe. After the container is running for 5 seconds, the kubelet runs the readiness probe on port 80 every 3 seconds. The timeout period of each check is set to 10 seconds. The minimum number of consecutive successes is set to 1, and the minimum number of consecutive failures is set to 3. CreateContainerGroupRequest.Container.ContainerProbe readinessProbe = new CreateContainerGroupRequest.Container.ContainerProbe(); readinessProbe.setTcpSocketPort(80); readinessProbe.setInitialDelaySeconds(5); readinessProbe.setPeriodSeconds(3); readinessProbe.setFailureThreshold(3); readinessProbe.setSuccessThreshold(3); readinessProbe.setTimeoutSeconds(10);
View the related events after an elastic container instance is created.
After an elastic container instance is created, view events about the instance. You can see that the instance starts as expected.
Change the NGINX listening port in the configuration file to simulate a service exception.
Change the NGINX listening port.
vi /etc/nginx/conf.d/default.conf
Example:
Restart NGINX.
nginx -s reload
View the effective status of the probe.
A few seconds after you restart NGINX, the container automatically restarts. View events about the instance. You can see that the container is restarted after the liveness probe and readiness probe each have three consecutive failures.