Configuring URL Redirection for a LoadBalancer Ingress
Ingress can redirect specific access requests to a specified path. The following is an example of YAML file for configuring an ingress redirection rule. In this example, the request for accessing example.com is redirected to example.com/testa and status code 301 is returned.
Constraints
- The advanced forwarding policy of LoadBalancer ingresses is available only to dedicated load balancers.
- The advanced forwarding policy of LoadBalancer ingresses is available only in clusters of version v1.23.14-r0, v1.25.9-r0, v1.27.6-r0, v1.28.4-r0, or later.
Configuring a Rule for Redirecting an Ingress to a URL Using YAML
An ingress can be redirected to a URL using annotations. Example:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: test-redirect-url namespace: default annotations: kubernetes.io/elb.id: df76342f-e898-402a-bac8-bde5bf974da8 kubernetes.io/elb.class: performance kubernetes.io/elb.port: '80' kubernetes.io/elb.redirect-url: https://example.com/testa # Information about the redirection to a URL kubernetes.io/elb.redirect-url-code: '301' # Code returned after the ingress is redirected to a URL spec: rules: - host: "example.com" http: paths: - path: / backend: service: name: test-service port: number: 8888 property: ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH pathType: ImplementationSpecific ingressClassName: cce
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
kubernetes.io/elb.redirect-url |
Yes |
String |
URL for redirection Format: A valid URL must start with http:// or https://, for example, https://example.com/. Parameter: This configuration takes effect on all forwarding rules of a single ingress. After the configuration is deleted, the target URL redirection rule will be automatically cleared. Either this annotation or the annotation of a grayscale release can be configured. |
kubernetes.io/elb.redirect-url-code |
No |
String |
Code returned after an ingress is redirected to a URL. Format: The return code can be 301, 302, 303, 307, or 308. Parameter: The default value is 301. |
Use curl to verify the redirection, where ${ELB_IP} is the IP address accessed by the target ingress.
# curl -I -H "Host:example.com" {$ELB_IP}
The access path will be redirected to example.com/testa.
HTTP/1.1 301 Moved Permanently Date: Thu, 07 Mar 2024 11:04:31 GMT Content-Type: text/html Content-Length: 134 Connection: keep-alive Location: https://example.com/testa Server: elb
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot