In an ACK cluster, ALB Ingress provides Layer 7 load balancing for services by managing externally accessible API objects. This topic describes how to use ALB Ingress to forward requests from different domain names or URL paths to different backend server groups, redirect HTTP requests to HTTPS, and implement features such as phased releases.
Index
Feature classification | Configuration examples |
ALB Ingress configuration | |
Port/Protocol configuration | |
Forwarding rule configuration | |
Advanced configuration |
Forward requests based on domain names
You can create a simple Ingress to forward requests based on a specified standard domain name or an empty domain name. The following sections provide examples.
Forward requests based on a standard domain name
In the following YAML example, the routing path is set to /hello. A request to demo.domain.ingress.top/hello is forwarded to the backend service.
Deploy the following template to create a Service, a deployment, and an Ingress. Requests are forwarded to the Service through the domain name specified in the Ingress.
Run the following command to access the service using the specified standard domain name.
Replace ADDRESS with the domain name of the ALB instance. You can run
kubectl get ingto obtain the domain name.curl -H "host: demo.domain.ingress.top" <ADDRESS>/helloExpected output:
{"hello":"coffee"}
Forward requests based on an empty domain name
In the following YAML example, the domain name is empty and the routing path is set to /hello. A request to <ADDRESS>/hello is forwarded to the backend service.
Deploy the following template to create an Ingress.
Run the following command to access the service using an empty domain name.
Replace ADDRESS with the domain name of the ALB instance. You can run
kubectl get ingto obtain the domain name.curl <ADDRESS>/helloExpected output:
{"hello":"coffee"}
Forward requests based on URL paths
ALB Ingress supports forwarding requests based on URLs. You can set different URL matching policies using the pathType field. The pathType field supports the following three matching types.
Exact match (
Exact): Exactly matches the request URL path.Default (
ImplementationSpecific): The specific logic is determined by the Ingress controller. In ALB Ingress Controller, this is an exact match (Exact). If the path field is not specified, ALB Ingress uses/as the default path.Prefix match (
Prefix): Matches the prefix of the request URL path.
If
pathTypeis set toExactorPrefix, you must set the path to a non-empty absolute path. Otherwise, the Ingress resource cannot be created because of a validation failure.URL matching policies may conflict. In this case, the forwarding rules are sorted by priority before the request is forwarded. For more information, see Configure forwarding rule priority.
Simple paths (/ /foo, /foo/)
Matching type
Rule path (routing rule)
Request path (user access)
Is the rule matched?
Prefix match (Prefix)
/
/ (matches all rules)
Yes
/foo
/foo
/foo/
Yes
/foo/
/foo
/foo/
Yes
/aaa
/ccc
No, the prefix does not match.
Exact match (Exact) or Default (ImplementationSpecific)
/foo
/foo
Yes
/bar
No
/foo/
No
/foo/
/foo
No
Hierarchical paths (/aaa/bb, /aaa/bbb, /aaa/bbb/)
Matching type
Rule path (routing rule)
Request path (user access)
Is the rule matched?
Prefix match (Prefix)
/aaa/bb
/aaa/bbb
No
/aaa/bbb
/aaa/bbb
Yes
/aaa/bbb/
/aaa/bbb
Yes, the trailing slash in the rule path is ignored.
/aaa/bbb
/aaa/bbb/
Yes, the trailing slash in the request path is matched.
/aaa/bbb/ccc
Yes, a subpath of the request path is matched.
Set two rule paths at the same time
Matching type
Rule path (routing rule)
Request path (user access)
Is the rule matched?
Prefix match (Prefix)
/
/aaa
/aaa/ccc
Yes, the request path matches the
/prefix of the rule path./aaa
/
/aaa/ccc
Yes, the request path matches the
/aaaprefix of the rule path./ccc
Yes, the request path matches the
/prefix of the rule path./aaa
/bbb
/ccc
No, the prefix does not match.
The following sections provide examples of the three matching types:
Prefix match (Prefix)
The URL path uses a prefix matching method where path segments are separated by /. The matching is case-sensitive and compares each element in the path segment by segment.
In the following YAML example, the routing rule is configured as /. All paths that start with /, such as /hello, are matched.
Deploy the following template to create an Ingress.
Run the following command to access the service.
Replace ADDRESS with the domain name of the ALB instance. You can run
kubectl get ingto obtain the domain name.curl <ADDRESS>/hello
Expected output:
{"hello":"coffee"}Exact match (Exact) or Default (ImplementationSpecific)
In the following YAML example, the routing rule is configured as /hello. Only the /hello path is matched.
Deploy the following template to create an Ingress.
Run the following command to access the service.
Replace ADDRESS with the domain name of the ALB instance. You can run
kubectl get ingto obtain the domain name.curl <ADDRESS>/helloExpected output:
{"hello":"coffee"}
Configure health checks
ALB Ingress supports health checks. You can configure health checks by setting the following annotations.
The following code block shows an example of the annotations:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: cafe-ingress
annotations:
alb.ingress.kubernetes.io/healthcheck-enabled: "true"
alb.ingress.kubernetes.io/healthcheck-path: "/"
alb.ingress.kubernetes.io/healthcheck-protocol: "HTTP"
alb.ingress.kubernetes.io/healthcheck-httpversion: "HTTP1.1"
alb.ingress.kubernetes.io/healthcheck-method: "HEAD"
alb.ingress.kubernetes.io/healthcheck-code: "http_2xx"
alb.ingress.kubernetes.io/healthcheck-timeout-seconds: "5"
alb.ingress.kubernetes.io/healthcheck-interval-seconds: "2"
alb.ingress.kubernetes.io/healthy-threshold-count: "3"
alb.ingress.kubernetes.io/unhealthy-threshold-count: "3"
spec:
... ...Parameter | Description | Default value |
| Specifies whether to enable health checks for the backend server group.
|
|
| The health check path. |
|
| The protocol used for health checks.
|
|
| The HTTP protocol version. This parameter is effective when
|
|
| The health check method.
Important If |
|
| The health check status code. The backend server is considered healthy only when the probe request is successful and returns the specified status code. You can enter one or more of the following options. Separate multiple status codes with a comma (,).
|
|
| The health check status code. The backend server is considered healthy only when the probe request is successful and returns the specified status code. If you use this parameter with The available options depend on the value of
|
|
| The health check timeout period in seconds (s). The value range is [1, 300]. |
|
| The health check interval in seconds (s). The value range is [1, 50]. |
|
| The number of consecutive successful health checks required to declare a backend server as healthy. The value range is [2, 10]. |
|
| The number of consecutive failed health checks required to declare a backend server as unhealthy. The value range is [2, 10]. |
|
| The port used for health checks. |
Note
|
Configure HTTP to HTTPS redirection
ALB Ingress uses the following annotation to redirect HTTP requests to HTTPS port 443.
This feature can be configured only on HTTP forwarding rules that use listener port 80.
This feature can be used only with annotations related to the custom forwarding actions
RemoveHeader,InsertHeader, and cross-domainCors.To configure this annotation, you must make sure that an HTTPS listener for port 443 is configured in the AlbConfig. For more information, see Configure ALB listeners through an AlbConfig.
Parameter | Description | Annotation example |
| Redirects HTTP requests to HTTPS port 443. | |
Support HTTPS and gRPC protocols for backends
ALB supports HTTPS and gRPC as backend protocols. To use them, you can add the following annotation to your Ingress.
After an Ingress is created, the backend protocol cannot be modified. To change the protocol, you must delete the Ingress and create a new one.
Parameter | Description | YAML example |
|
| |
Configure regular expressions
You can use the alb.ingress.kubernetes.io/use-regex: "true" annotation to enable regular expression mode. Then, you can configure the regular expressions in custom forwarding conditions or actions.
This annotation applies only to path rules with pathType: Prefix.
Parameter | Description | |
| Enables regular expressions. | |
| Configures custom forwarding conditions. For more information, see Forwarding conditions.
|
Regular expression matching rules:
Matching object | Prefix | Rule example | Client path | Is matched? | Description |
Domain name | Starts with |
| test.EXAMPLE.com | Yes | Domain names support case-insensitive regular expression matching. |
Path | Starts with |
| /API | Yes | Paths support case-insensitive regular expression matching. |
Starts with |
| /Api | No | Paths support case-sensitive regular expression matching. |
Configure rewrites
ALB Ingress supports the rewrite feature. After ALB Ingress receives a client request, it modifies the path of the request and then sends the request to the backend Service. Rewrites are implemented using the following two annotations:
alb.ingress.kubernetes.io/rewrite-target: /<path>/${number}: Enables rewriting and specifies the rewritten path.ImportantUse the
${number}format to represent a variable that is obtained from the original path using a regular expression. You can configure one or more variables, such as${1},${2}, or${3}. You can obtain a maximum of three variables from the original path.The
pathTypeof the Ingress must be set toPrefix.
alb.ingress.kubernetes.io/use-regex: Specifies whether to use a regular expression in the path. This is enabled by default after you configurerewrite-target."true": Use regular expressions."false": Do not use regular expressions. If the path contains special characters, such as“%#;!()[]^,”\", the Ingress resource cannot be created.
Configuration examples
Scenario 1: Remove a prefix
In the following YAML example, path: /something(/|$)(.*) uses a regular expression to divide the client request path into three parts:
/something: Matches the prefix to be removed.(/|$): The first capturing group, which matches the/character or the end of the path ($) that follows/something.(.*): The second capturing group, which matches all content that follows/something/. It is used in the rewritten path as${2}.
The rewritten path that is configured in the alb.ingress.kubernetes.io/rewrite-target annotation is / (standard path prefix) + ${2} (content of the second capturing group). The following table describes the path rewrite effect.
Original client path | Does it match the path regular expression? | Rewritten path |
| Matched. The second capturing group is empty. |
|
| Matched. The second capturing group is empty. |
|
| Matched. The content of the second capturing group is |
|
| Not matched. In this example, no routing rule is matched, and ALB Ingress returns a 503 status code. | |
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: rewrite-ingress
annotations:
alb.ingress.kubernetes.io/use-regex: "true" # Allows the path field to use regular expressions.
alb.ingress.kubernetes.io/rewrite-target: /${2} # This annotation supports regular expression replacement.
spec:
ingressClassName: alb
rules:
- host: demo.alb.ingress.top
http:
paths:
- path: /something(/|$)(.*)
pathType: Prefix
backend:
service:
name: rewrite-svc
port:
number: 9080Scenario 2: Capture and rearrange multiple parts
The following example captures and rearranges multiple parts of the path /items/(.*)/(.*)/(.*). It also changes the URL format to a format similar to a POST request without the user noticing. The rewritten path is / (standard path prefix) + ${2} (content of the second capturing group) + ?code= + ${3} (content of the third capturing group). The following table describes the path rewrite effect.
The example explicitly requires four segments in the path. This method requires the client to use a fixed path format.
Original client path | Does it match the path regular expression? | Rewritten path |
| Matched. The content of the second capturing group is |
|
| Matched. The content of the second capturing group is |
|
| Not matched. In this example, no routing rule is matched, and ALB Ingress returns a 503 status code. | |
| Not matched. In this example, no routing rule is matched, and ALB Ingress returns a 503 status code. | |
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: rewrite-ingress
annotations:
alb.ingress.kubernetes.io/use-regex: "true" # Allows the path field to use regular expressions.
alb.ingress.kubernetes.io/rewrite-target: /${2}?code=${3} # This annotation supports regular expression replacement.
spec:
ingressClassName: alb
rules:
- host: demo.alb.ingress.top
http:
paths:
- path: /items/(.*)/(.*)/(.*)
pathType: Prefix
backend:
service:
name: rewrite-svc
port:
number: 9080Scenario 3: Rewrite multiple paths to a single path
The following example rewrites multiple paths to a single path by matching multiple paths (/app-a(/|$)(.*) and /app-b(/|$)(.*)) with regular expressions. The rewritten path is /app-c/ + ${2} (content of the second capturing group). The following table describes the path rewrite effect.
Original client path | Does it match the path regular expression? | Rewritten path |
| Matched. The content of the second capturing group is |
|
| Matched. The content of the second capturing group is |
|
| Matched. The second capturing group is empty. |
|
| Not matched. In this example, no routing rule is matched, and ALB Ingress returns a 503 status code. | |
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: rewrite-ingress
annotations:
alb.ingress.kubernetes.io/use-regex: "true" # Allows the path field to use regular expressions.
alb.ingress.kubernetes.io/rewrite-target: /app-c/${2} # This annotation supports regular expression replacement.
spec:
ingressClassName: alb
rules:
- host: demo.alb.ingress.top
http:
paths:
- path: /app-a(/|$)(.*)
pathType: Prefix
backend:
service:
name: rewrite-svc
port:
number: 9080
- path: /app-b(/|$)(.*)
pathType: Prefix
backend:
service:
name: rewrite-svc
port:
number: 9080Scenario 4: Rewrite a domain name
The alb.ingress.kubernetes.io/rewrite-target annotation supports changing only the path. To change other parts of the URL, such as the domain name and parameters, you can use custom forwarding rules.
Verify rewrite rule matching
You can use the sed command to test in advance whether a specific path used by the client matches the regular expression configured in the path and to view the new rewritten path.
This section uses the capturing path /items/(.*)/(.*)/(.*) and rewrite rule /${2}?code=${3} from Scenario 2: Capture and rearrange multiple parts as an example:
Save the following sample command to
path2.txt:/items/electronics/computers/554 /items/produce/fruits/12 /items/headphones/5 /drinks/41Check whether the paths match and view the rewritten paths:
In the following command, the path regular expression (
/items/(.*)/(.*)/(.*)) and the rewritten path (/${2}?code=${3}) from the example are modified. In the sed command, the special character/must be escaped with an escape character\, and the capturing group content is written as\2instead of${2}.sed -E 's#\/items\/(.*)\/(.*)\/(.*)#Matched: [&] ---> Rewritten: [/\2?code=\3]#' path2.txtThe expected output is as follows. The first two paths match the rewrite rule and are rewritten to new paths. The last two paths do not match the rewrite rule and are not rewritten.
Matched: [/items/electronics/computers/554] ---> Rewritten: [/computers?code=554] Matched: [/items/produce/fruits/12] ---> Rewritten: [/fruits?code=12] /items/headphones/5 /drinks/41
Configure custom listener ports
ALB Ingress supports custom listener ports through an annotation. This allows a service to expose both port 80 (HTTP) and port 443 (HTTPS) at the same time.
ALB does not support creating new listeners directly in an Ingress. To ensure that the Ingress works as expected, you must first create the required listener ports and protocols in the AlbConfig. Then, you can associate these listeners with the service in the Ingress. For information about how to create an ALB listener, see Configure ALB listeners through an AlbConfig.
Parameter | Description | YAML example |
| Makes the service listen on both port 80 and port 443. | |
Configure forwarding rule priority
By default, the priority of ALB forwarding rules is sorted as follows:
Different Ingresses are sorted by the lexicographical order of
namespace/name. A smaller lexicographical order indicates a higher priority.The namespace is compared first. If the namespaces are the same, the name is compared character by character.
Within the same Ingress, rules are sorted by their order in the
rulefield. Rules that are configured earlier have higher priority.rules: - host: www.example.com http: ... - host: www.test.com http: ...
If you do not modify the namespace/name field of the Ingress, you can configure the following Ingress annotation to define the priority of ALB forwarding rules:
Parameter | Description | Value range | YAML example |
| Defines the priority of the ALB forwarding rule. A smaller value indicates a higher priority. The priority of rules within the same listener must be unique. | [1,1000] Default value: 10 | |
Implement phased releases using annotations
ALB supports complex routing and provides phased release capabilities based on headers, cookies, and weights. You can configure the following annotations to flexibly implement various phased release policies. For more information about best practices for phased releases, see Implement phased releases through ALB Ingress.
Parameter | Description | Description |
| Enables the phased release capability. |
|
Allocate canary traffic based on a specified header
Parameter
Description
YAML example
alb.ingress.kubernetes.io/canary-by-headerThis rule lets you customize the request header and its corresponding value. You must configure both annotations.
When the
headerandheader-valuein the request match the set values, the request traffic is allocated to the canary service endpoint.Other non-matching requests are allocated to the subsequent canary service according to the canary priority.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: alb.ingress.kubernetes.io/order: "1" alb.ingress.kubernetes.io/canary: "true" alb.ingress.kubernetes.io/canary-by-header: "location" alb.ingress.kubernetes.io/canary-by-header-value: "hz" name: demo-canary spec: ... ...alb.ingress.kubernetes.io/canary-by-header-valueIf the request header contains
location: hz, the traffic is routed to the canary service. Other requests are allocated to the canary service based on the canary weight policy. The following is a configuration example.Allocate canary traffic based on a specified cookie
Parameter
Cookie value
YAML example
alb.ingress.kubernetes.io/canary-by-cookiealways: All request traffic is allocated to the canary service endpoint.never: Request traffic is not allocated to the canary service endpoint.
Cookie-based canary releases do not support custom settings, only
alwaysandnever.apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: alb.ingress.kubernetes.io/order: "2" alb.ingress.kubernetes.io/canary: "true" alb.ingress.kubernetes.io/canary-by-cookie: "demo" name: demo-canary-cookie ... ...If the request header contains
Cookie: demo=always, the traffic is routed to the canary service. If the request header containsCookie: demo=never, the traffic is not routed to the canary service. The following is a configuration example.Allocate traffic by weight
Parameter
Description
YAML example
alb.ingress.kubernetes.io/canary-weightSets the percentage of requests to the specified service. The value is an integer from 0 to 100.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: alb.ingress.kubernetes.io/order: "3" alb.ingress.kubernetes.io/canary: "true" alb.ingress.kubernetes.io/canary-weight: "50" name: demo-canary-weightThe following example configures the weight of the canary service to 50%:
Implement session persistence using annotations
ALB Ingress supports session persistence through the following annotations.
The following code block shows an example of the annotations:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: cafe-ingress-v3
annotations:
alb.ingress.kubernetes.io/sticky-session: "true"
alb.ingress.kubernetes.io/sticky-session-type: "Insert" # When using a custom cookie, the cookie insertion type must be Server.
alb.ingress.kubernetes.io/cookie-timeout: "1800"
alb.ingress.kubernetes.io/cookie: "test"
spec:
... ...Parameter | Description | Default value |
| Specifies whether to enable session persistence.
|
|
| The method for handling cookies.
Note This parameter is effective when |
|
| The cookie timeout period in seconds. The value range is [1, 86400]. This annotation is effective when | 1000 |
| The custom cookie value. This annotation is required and cannot be empty when | "" |
Specify a load balancing algorithm for a backend server group
ALB Ingress can specify the load balancing algorithm for a backend server group using the following annotation. The possible values and their descriptions are shown in the following table.
Parameter | Value | Description | |
|
| Weighted round-robin. Backend servers with higher weights are more likely to be polled (default value). | |
| Polling is based on the weight value set for each backend server and the actual load (number of connections) of the backend server. If the weights are the same, the server with fewer connections is prioritized. | ||
| Source IP consistent hashing. Requests are distributed based on a hash of the client's source IP. Requests from the same IP address are allocated to the same backend server. | ||
| URL parameter consistent hashing. Use the |
Cross-domain configuration
ALB Ingress supports the following annotation parameters to control cross-domain behavior. You can specify allowed sites, request methods, request and response headers, credential carrying, and preflight (OPTIONS) cache time to meet cross-domain access requirements in different security and business scenarios.
The following code block shows an example of the annotations:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: alb-ingress
annotations:
alb.ingress.kubernetes.io/enable-cors: "true"
alb.ingress.kubernetes.io/cors-expose-headers: ""
alb.ingress.kubernetes.io/cors-allow-methods: "GET,POST"
alb.ingress.kubernetes.io/cors-allow-credentials: "true"
alb.ingress.kubernetes.io/cors-max-age: "600"
alb.ingress.kubernetes.io/cors-allow-origin: "Allowed-cross-domain-name"
spec:
... ...Parameter | Description | Default value |
| Enables CORS cross-domain configuration. | Default value: |
| The sites that are allowed to access server resources through a browser. Separate sites with a comma (,). A single value must start with http:// or https:// followed by a valid domain name or a first-level wildcard domain name. IP addresses are not supported. |
|
| The allowed cross-domain methods. The methods are not case-sensitive. Separate cross-domain methods with a comma (,). |
|
| The request headers that can be propagated across domains. You can set this to |
|
| The list of headers that can be exposed. You can set this to |
|
| Specifies whether to allow credentials to be carried during cross-domain access. |
|
| For non-simple requests, this sets the maximum cache time in seconds for OPTIONS preflight requests in the browser. The value range is [0, 172800]. | Default value: |
Backend persistent connections
Traditional load balancing uses short-lived connections to access backend server groups. Each request requires a TCP connection to be established and terminated. This makes network connectivity a bottleneck for high-performance systems. With backend persistent connection support from the load balancer, the resource consumption for handling the connection layer is greatly reduced, which significantly improves processing performance. The following code block shows a sample configuration:
Parameter | Description | YAML example |
| Enables backend persistent connections. This reduces TCP connection establishment and termination for each request, lowers resource consumption, and improves the processing capability of high-performance systems. | |
Support for mounting IPv6 to backend server groups
After you enable IPv6 mounting for a server group, to mount both IPv4 and IPv6 pods to the server group, you must make sure that the cluster has dual-stack capability enabled. For more information, see Create an ACK managed cluster.
The following limitations apply when you enable IPv6 mounting:
If the VPC where the server group is located does not have IPv6 enabled, you cannot enable IPv6 mounting for the server group.
When you mount IP-type or Function Compute-type server groups using custom forwarding actions, IPv6 mounting is not supported.
For an Ingress that is associated with an IPv4-type ALB instance, IPv6 mounting for the server group is not supported.
Both the Service and the ALB Ingress must be configured as required for dual-stack. After you create a dual-stack ALB instance, the server group can mount both IPv4 and IPv6 backend servers.
Configuration object | Configuration parameter | Value | Description | YAML example |
Service |
|
| Specifies the IP address types available for the Service. | |
|
| Sets the IP policy for the Service, supporting dual-stack. | ||
ALB Ingress |
|
| Enables IPv6 mounting for the server group. | |
Support QPS throttling
ALB supports Queries Per Second (QPS) throttling for forwarding rules. You can configure QPS throttling by setting the following annotation.
Annotation | Description | YAML example |
| Sets the QPS throttling limit for the forwarding rule. The value range is [1, 1000000]. | |
Backend slow start
After a new pod is added to the Service backend, if ALB Ingress immediately allocates traffic to the new pod, it may cause a transient high CPU or memory pressure, which leads to access exceptions. Using slow start, ALB Ingress can gradually transfer traffic to the new pod, which mitigates the impact of sudden traffic bursts. The following code block shows a sample configuration:
Parameter | Description | YAML example |
| Specifies whether to enable the slow start feature. It is disabled by default.
| |
| The longer the time for the traffic to gradually increase after the slow start is completed, the slower the traffic increase rate. This parameter is in seconds (s). The value range is [30, 900], and the default value is 30 seconds. |
Connection draining
When a pod enters the Terminating state, ALB Ingress removes it from the backend server group. The connections that are already established between ALB and the pod are not immediately interrupted. Client access continues to forward requests to these backend servers. This may cause the business in the pod to be unable to go offline for a long time or cause request errors. To avoid this issue, you can use the connection draining feature of ALB. When a pod is removed or a health check is abnormal, ALB Ingress maintains normal transmission for a period of time and then actively disconnects the connection after the interruption time is reached. This ensures a smooth business offline process. For more information, see Achieve smooth business offline through ALB connection draining.
Before the connection draining time ends, ALB Ingress cannot guarantee that the pod is in a running state. You can configure spec.terminationGracePeriodSeconds for the pod or use a preStop Hook to control the availability of the pod in the Terminating state.
Parameter | Description | YAML example |
| Specifies whether to enable connection draining. It is disabled by default.
| |
| The connection draining timeout period in seconds (s). The value range is [0, 900], and the default value is 300 seconds. |
Disable cross-zone load balancing
By default, ALB enables cross-zone load balancing. This means that traffic is evenly distributed to backend services across different zones in the same region. If you disable cross-zone load balancing for an ALB server group, traffic is distributed only among backend services within the same zone in the same region.
To disable cross-zone load balancing, you must make sure that ALB has available backend services configured in each zone and that these servers have sufficient resources. To avoid affecting your business, perform this operation with caution.
You can refer to the following example to disable cross-zone load balancing:
Parameter | Description | YAML example |
| Specifies whether to disable cross-zone forwarding. It is enabled by default.
| |