Deploy the Citrix ingress controller on a Rancher managed Kubernetes cluster¶
Rancher is an open-source platform with an intuitive user interface that helps you to easily deploy and manage Kubernetes clusters. Rancher supports Kubernetes clusters on any infrastructure be on cloud or on-premises deployment. Rancher also allows you to centrally manage multiple clusters running across your organization.
The Citrix ingress controller is built around the Kubernetes Ingress and it can automatically configure one or more Citrix ADCs based on the Ingress resource configuration. You can deploy the Citrix ingress controller in a Rancher managed Kubernetes cluster to extend the advanced load balancing and traffic management capabilities of Citrix ADC to your cluster.
Prerequisites¶
You must create a Kubernetes cluster and import the cluster on the Rancher platform.
Deployment options¶
You can either deploy Citrix ADC CPXs as pods inside the cluster or deploy a Citrix ADC MPX or VPX appliance outside the Kubernetes cluster.
Based on how you want to use Citrix ADC, there are two ways to deploy the Citrix ingress controller in a Kubernetes cluster on the Rancher platform:
-
As a sidecar container alongside Citrix ADC CPX in the same pod: In this mode, Citrix ingress controller configures the Citrix ADC CPX.
-
As a standalone pod in the Kubernetes cluster: In this mode, you can control the Citrix ADC MPX or VPX appliance deployed outside the cluster.
Deploy the Citrix ingress controller as a sidecar with Citrix ADC CPX¶
In this deployment, you can use the Citrix ADC CPX instance for load balancing the North-South traffic to microservices in your Kubernetes cluster. Citrix ingress controller is deployed as a sidecar alongside the Citrix ADC CPX container in the same pod using the citrix-k8s-cpx-ingress.yaml
file.
Perform the following steps to deploy the Citrix ingress controller as a sidecar with Citrix ADC CPX on the Rancher platform.
-
Download the
citrix-k8s-cpx-ingress.yaml
file using the following command.wget https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/baremetal/citrix-k8s-cpx-ingress.yml
-
On the Rancher GUI cluster page, select Clusters from Global view.
- From the Clusters page, open the cluster that you want to access.
- Click
Launch kubectl
to open a terminal for interacting with your Kubernetes cluster. - Create a file named
cpx.yaml
in the launched terminal and then copy the contents of the modifiedcitrix-k8s-cpx-ingress.yaml
file to thecpx.yaml
file. - Deploy the newly created YAML file using the following command.
kubectl create -f cpx.yaml
-
Verify if Citrix ingress controller is deployed successfully using the following command.
kubectl get pods --all-namespaces
-
Deploy the Citrix ingress controller as a standalone pod¶
In this deployment, Citrix ingress controller which runs as a stand-alone pod allows you to control the Citrix ADC MPX, or VPX appliance from the Kubernetes cluster. You can use the citrix-k8s-ingress-controller.yaml
file for this deployment.
Before you begin:
Ensure that you complete all the prerequisites required for deploying the Citrix ingress controller.
To deploy the Citrix ingress controller as a standalone pod on the Rancher platform:
-
Download the
citrix-k8s-ingress-controller.yaml
file using the following command:wget https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/baremetal/citrix-k8s-ingress-controller.yaml
-
Edit the
citrix-k8s-ingress-controller.yaml
file and enter the values of the environment variable using the information in Deploy Citrix ingress controller as a pod.Note: To update the
Status.LoadBalancer.Ingress
field of the Ingress resources managed by the Citrix ingress controller with the allocated IP addresses, you must specify the command line argument--update-ingress-status yes
when you start the Citrix ingress controller. For more information, see Updating the Ingress status for the Ingress resources with the specified IP address. -
On the Rancher GUI cluster page, select Clusters from Global view.
- From the Clusters page, open the cluster that you want to access.
- Click
Launch kubectl
to open a terminal for interacting with your Kubernetes cluster. - Create a file named
cic.yaml
in the launched terminal and then copy the content of the modifiedcitrix-k8s-ingress-controller.yaml
file tocic.yaml
. -
Deploy the
cic.yaml
file using the following command.kubectl create -f cic.yaml
-
Verify if the Citrix ingress controller is deployed successfully using the following command.
kubectl get pods --all-namespaces