关注微信公众号
第一手干货与资讯
加入官方微信群
获取免费技术支持
This post outlines how to build a production-grade ingress solution using Citrix ADC on Rancher. Customers can confidently expose end user traffic to microservices or legacy workloads on Kubernetes clusters on Rancher using this solution.
Citrix ADC (formerly known as NetScaler) has been a market leader for over 15 years in the Application Delivery Controller (ADC) market, helping organizations manage their hyper scale web traffic. An ADC comprises of advanced load balancing, TLS termination, reverse proxying, L3-L7 protocol optimizations, and redundancy solutions to deliver high performance applications. Citrix ADC provides these benefits for on-premise, public and private clouds deployments. It is available in several different form factors – containerized (CPX), virtualized (VPX), hardware (MPX, SDX), and the recently launched bare-metal (BLX). The CPX in particular is a high performance, low footprint, cloud native service and edge proxy that can run inside Kubernetes clusters such as those managed by Rancher.
For applications deployed in Kubernetes, Citrix ADC offers following solutions:
The following steps show how to deploy Citrix ADC on Rancher to do ingress for a simple guestbook application (PHP application with Redis). Citrix ADC CPX works as an ingress to route end user traffic to the guestbook applications hosted on the Rancher-managed Kubernetes cluster. The diagram below shows the topology of this sample application:
First, deploy Rancher via the quick start guidelines. Once Rancher is up and running, create or import a 3 node Kubernetes cluster within Rancher. This is the default landing page:
Next, on the Workloads tab, click the Import YAML button and paste or upload the deployment from the guestbook-all-in-one.yaml file:
You will be able to see the 3 deployments as shown below, namely — frontend, redis-master, and redis-slave:
frontend
redis-master
redis-slave
Now, we’ll deploy Citrix Ingress Controller. Go to default namespace dashboard, and click on Launch kubectl:
Copy the YAML code from GitHub docs of Citrix Ingress Controller to deploy CPX as a pod on Kubernetes cluster as cpx.yaml.
Apply cpx.yaml on the Kubernetes cluster, and verify that the CPX Pod is running:
You’ll see the same application on Workloads tab:
Next, go to the Load Balancing tab:
Import the ingress.yaml file, with the following code. These are your ingress rules:
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: guestbook-ingress annotations: kubernetes.io/ingress.class: "citrix" spec: rules: - host: www.guestbook.com http: paths: - path: / backend: serviceName: frontend servicePort: 80
If you click on the Load Balancing tab, it should show the guestbook-ingress running as the ingress:
If you’d like, you can login to the CPX pod to see the LB vserver configuration (this is the load balancing server running in Citrix ADC):
In your local system’s host file, configure “www.guestbook.com” to point to the IP address of Kubernetes master node. Visit “www.guestbook.com:5555” in your browser (or use curl) to see the PHP-based guestbook app up and running. You can enter any message and it will get saved in the Redis cluster running on Rancher managed Kubernetes:
You can also see various pods running (Ingress Controller, frontend, redis apps):
Here are some useful resources to get started with Citrix ADC’s Ingress solution:
Soon, we’ll be announcing some exciting news about Citrix’s support for Istio service mesh and integration with several cloud native solutions for logging, monitoring, tracing, and CICD, in addition to Rancher. Stay connected with Citrix Networking on Twitter.
Networking is a critical component for the success of a Kubernetes implementation. Read the free ebook Diving Deep into Kubernetes Networking to learn about Kubernetes networking from basics to advanced topics for operators and developers alike.