You can configure the PostStart and PreStop lifecycle hooks in the Enterprise Distributed Application Service (EDAS) console so that you can add code to customize operations when applications are running. You can also configure the Liveness and Readiness probes in the EDAS console to detect the liveness and readiness of containers. This topic describes how to configure the lifecycle hooks of applications and the Liveness and Readiness probes of containers.
Background information
In general, some operations are performed before and after an application is started or stopped. For example, you can deploy resources before you start an application, and gracefully unpublish the application or notify other services or applications before you stop the application. EDAS integrates the lifecycle hook feature based on Kubernetes. This feature allows you to configure the PostStart and PreStop hooks for containers.
To deploy an application to a Kubernetes cluster, you must check whether the pods are alive and ready to provide services. EDAS integrates the pod probe configuration feature based on Kubernetes. This feature allows you to configure the Liveness probe to determine the time to restart containers and configure the Readiness probe to determine whether containers are ready to receive traffic.
Configure application lifecycle hooks and probes when you create an application
Configure application lifecycle hooks and probes when you update an application
You can configure application lifecycle hooks and probes when you create an application, or configure or update the hooks and probes when you deploy an application.
Set configurations for application lifecycle management
Configure the PostStart and PreStop hooks
-
Exec: runs a specific command in a container. If 0 is returned after the command is run, the command execution is successful.
- HttpGet: sends an HTTP GET request to a specific container endpoint. If a status code that is greater than or equal to 200 but less than 400 is returned, the request is successful.
The following examples show you how to configure the PostStart hook in Exec and HttpGet modes in EDAS:
-
Exec mode
For example, you want to run the following command after a container is created:
echo "container started"
You can configure the PostStart hook by using the following methods in EDAS:-
Method 1: Split the command into different parameters.
You can use this method if the command is short and contains a few parameters.
-
Method 2: Start a shell and run the command in the shell.
You can use this method if the command is long and contains many parameters.
-
-
HttpGet mode
In HttpGet mode, you need to set the following parameters:- Host: the host address of the HTTP request. If you leave this parameter empty, the IP address of the pod is used.
- Path: the path of the HTTP request. Default value: /.
- Port :the port number of the HTTP request.
- Scheme: the protocol type. HTTP and HTTPS protocols are supported. By default, the HTTP protocol is used.
- HttpHeaders: the custom HTTP request header.
NoteIf the PostStart or PreStop hook fails to be run, the container is automatically restarted. You can query the information about execution failures of the PostStart or PreStop hook in the application change records.
Configure the Liveness and Readiness probes
-
LivenessProbe: detects whether a container is alive. If the detection fails, Kubernetes automatically terminates the container, and then restarts the container based on the restart policy.
-
ReadinessProbe: detects whether a container is ready to receive traffic. If the detection is successful, Kubernetes adds the pod to the service list to which the pod belongs so that the pod starts to receive traffic.
-
Exec: runs a specific command in a container. If 0 is returned after the command is run, the detection is successful.
-
HttpGet: sends an HTTP GET request to a specific container endpoint. If a status code that is greater than or equal to 200 but less than 400 is returned, the detection is successful.
-
TcpSocket: checks whether the specified TCP port corresponding to the IP address of the container is enabled. If the port is enabled, the detection is successful.
-
InitialDelaySeconds: the delay from the start of the container to the first detection of the probe. Unit: seconds. Minimum value: 1. Maximum value: 1000.
-
PeriodSeconds: the interval at which detections are carried out. Unit: seconds. Minimum value: 1. Maximum value: 1000.
-
SuccessThreshold: the number of consecutive successful detections that must occur following a failed detection before the probe is declared successful. Minimum value: 1. Maximum value: 1000. For the Liveness probe, the value is set to 1.
-
TimeoutSeconds: the timeout period of a detection. Unit: seconds. Minimum value: 1. Maximum value: 1000.
-
FailureThreshold: the number of consecutive detection failures that must occur following a successful detection before the probe is declared a failure. Minimum value: 1. Maximum value: 1000.
Verify the result
After you configure an application lifecycle hook, you can perform the following steps to verify the configuration:
For example, configure the write script Hello from the postStart handler
before you start an application.
Hello from the postStart handler
script exists. If the script exists, the configuration is successful. 
DingTalk group for Container Service for Kubernetes and Serverless Kubernetes clusters in EDAS
If you have questions or suggestions when you use Container Service for Kubernetes
and Serverless Kubernetes clusters in EDAS, submit a ticket. To give feedback, you can also join the DingTalk group by searching for the DingTalk
group ID 23197114
.