-
-
-
Deploy NetScaler ingress controller with OpenShift router sharding support
-
Deploy NetScaler CPX as an Ingress in Azure Kubernetes Engine
-
Deploy NetScaler ingress controller in an Azure Kubernetes Service cluster with NetScaler VPX
-
Deploy NetScaler ingress controller for NetScaler with admin partitions
-
Multi-cloud and GSLB solution with Amazon EKS and Microsoft AKS clusters
-
-
SSL certificate for services of type LoadBalancer through the Kubernetes secret resource
-
BGP advertisement for type LoadBalancer services and Ingresses using NetScaler CPX
-
NetScaler CPX integration with MetalLB in layer 2 mode for on-premises Kubernetes clusters
-
Advanced content routing for Kubernetes Ingress using the HTTPRoute CRD
-
IP address management using the NetScaler IPAM controller for Ingress resources
-
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
Advanced content routing for Kubernetes Ingress using the HTTPRoute CRD
Kubernetes native Ingress offers basic host and path-based routing which is supported by the NetScaler Ingress Controller. NetScaler also provides an alternative approach using content routing CRDs for supporting advanced routing capabilities. Content Routing CRDs include Listener CRD and HTTPRoute CRD. These CRDs provide advanced content routing features such as regex based expression and content switching based on query parameters, cookies, HTTP headers, and other NetScaler custom expressions.
With the Ingress version networking.k8s.io/v1
, Kubernetes introduces support for resource backends. A resource backend is an ObjectRef
to another Kubernetes resource within the same namespace as an Ingress object.
Now, NetScaler supports configuring the HTTP route CRD resource as a resource backend in Ingress. By default, Ingress supports only limited content routing capabilities like path and host-based routing. With this feature, you can extend advanced content routing capabilities to Ingress and configure various content switching options. For a given domain, you can use the HTTPRoute
custom resource to configure content switching without losing the third party compatibility support of the Kubernetes Ingress API.
Note:
This feature supports the Kubernetes Ingress version
networking.k8s.io/v1
that is available on Kubernetes 1.19 and later versions.If the Ingress path routing and
HTTPRoute
are used for the same domain, all the content routing policies from theHTTPRoute
resource get lower priority than the Ingress based content routing policies. So, it is recommended to configure all the content switching policies of theHTTPRoute
resource for a given domain if advanced content routing is required.
Configure advanced content routing for Kubernetes Ingress using the HTTPRoute CRD
This procedure shows how to deploy an HTTPRoute resource as a resource backend to support advanced content routing.
Prerequisites
- Ensure that the ingress API version
networking.k8s.io/v1
is available in the Kubernetes cluster. - Ensure that the HTTPRoute CRD is deployed.
Deploy the Ingress resource
Define the Ingress resource with the resource back-end pointing to a HTTPRoute
custom resource in a YAML file. Specify all the front-end configurations such as certificates, front-end profiles, front-end IP address, and ingress class as part of the Ingress resource.
Following is a sample Ingress resource named as sample-ingress.yaml
.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kuard-ingress
annotations:
ingress.citrix.com/frontend-ip: "x.x.x.x"
kubernetes.io/ingress.class: citrix
ingress.citrix.com/insecure-termination: "redirect"
spec:
tls:
- secretName: web-ingress-secret
rules:
- host: kuard.example.com
http:
paths:
- pathType: ImplementationSpecific
backend:
resource:
apiGroup: citrix.com
kind: HTTPRoute
name: kuard-example-route
<!--NeedCopy-->
After defining the Ingress resource in a YAML file, deploy the YAML file using the following command. Here, sample-ingress.yaml
is the YAML file definition.
kubectl apply -f sample-ingress.yaml
In this example, content switching policies for the domain kuard.example.com
are defined as part of the HTTPRoute
custom resource called kuard-example-route
. Certificates
, frontend-ip
, and ingress class
are specified as part of the Ingress resource. Back-end annotations such as load balancing method and service group configurations are specified as part of the HTTPRoute
custom resource.
Deploy the HTTPRoute resource
Define the HTTP route configuration in a YAML file. In the YAML file, use HTTPRoute in the kind
field and in the spec
section add the HTTPRoute
CRD attributes based on your requirement for the HTTP route configuration.
For more information about API description and examples, see the HTTPRoute documentation.
Following is a sample HTTPRoute
resource configuration. This example shows how to use query parameters based content switching for the various Kubernetes back-end microservices.
apiVersion: citrix.com/v1
kind: HTTPRoute
metadata:
name: kuard-example-route
spec:
hostname:
- kuard.example.com
rules:
- name: kuard-blue
match:
- queryParams:
- name: version
contains: v2
action:
backend:
kube:
service: kuard-blue
port: 80
- name: kuard-green
match:
- queryParams:
- name: version
contains: v3
action:
backend:
kube:
service: kuard-green
port: 80
- name: kuard-default
match:
- path:
prefix: /
action:
backend:
kube:
service: kuard-purple
port: 80
<!--NeedCopy-->
After you have defined the HTTP routes in the YAML file, deploy the YAML file. In this example, httproute
is the YAML definition.
kubectl apply -f httproute.yaml
Share
Share
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.