Finally, Citrix now supports running NetScaler in Google Cloud! I have been waiting for this for a long time. Now still the process is still a bit manual since it is not available in the Google Cloud marketplace so you will need to download the image and create an VM based upon that image.
Now there are some limitations that you should be aware of if you plan on setting up Citrix ADC in Google Cloud. Citrix support the most common features such as ICA Proxy and regular LB and CS.
- Load Balancing
- ICA Proxy
- Content Switching
- RDP Proxy
- VPN (CVPN/Full)
However as of now, Citrix does not support High-availability, it is just a matter of how they will solve this best possible. Other NVA vendors running in GCP are using regular GCP load balancing in front of their NVA to handle high-availability, so my guess is that it will not be long until they support this.
Not supported features:
- High-availability (Not Yet)
- Multi-NIC in the same VPC.
Create the image:
First we need to download the image from Citrix Download site under ADC, they have a specific image for running in GCP. Once you have downloaded that image you need to upload it to a storage bucket in GCP. First of start with creating a bucket in the region where you want to host the image.
Next upload the image using either the portal or using gcloud CLI.
Once you uploaded the firmware you need to create an image from the tar.gz file that you uploaded. This can be easily done using the Cloud Shell option in the web portal.
Within Cloud Shell run the following command,
gcloud compute images create <IMAGE_NAME> –source-uri=gs://<STORAGE_BUCKET_NAME>/<FILE_NAME>.tar.gz –guest-os-features=MULTI_IP_SUBNET
gcloud compute images create ns-image –source-uri=gs://ns-image/NSVPX-GCP-12.1-50.28_nc.tar.gz –guest-os-features=MULTI_IP_SUBNET
NOTE: Taking this command will take some time to extract the image from the tar.gz and make it available. Cloud Shell will let you know when the image is available and you can see it in the portal under Compute –> Images
When you are creating the virtual machine and you want to have multiple networks connected you need to create multiple VPC networks. A single VPC can have multiple subnets, but a machine with a NIC can only be connected to a single VPC, so in this case you would need to have 3 VPC’s created, one for DMZ and incoming traffic, one for management and last one for backend connections to the backend servers.
Example architecture of VPC’s connected.
Once the instance is up and running you can connect to the instance using the external address to the first NIC that is attached (if you have multple NIC’s)
If you want to deploy NetScaler in an automated fashion using Google Cloud deployment manager, Citrix have created some templates here that can be used, https://github.com/citrix/citrix-adc-gdm-templates
You also have the Citrix documentation here –> https://docs.citrix.com/en-us/netscaler/12-1/deploying-vpx/deploy-vpx-google-cloud.html