Quick Deployment: Deploy F5 CIS/F5 IngressLink in a Kubernetes cluster on AWS
Summary
This article describes how to deploy F5 Container Ingress Services (CIS) and F5 IngressLink with NGINX Ingress Controller on AWS cloud quickly and predictably. All you need to begin with are your AWS credentials. (15-35 mins).
Problem Statement
Deploying F5 IngressLink is quick and simple. However, to do so, you must first deploy the following resources:
- AWS resources such as VPC, subnets, security groups and more.
- A Kubernetes cluster on AWS
- A BIG-IP Instance
- F5 Container Ingress Services, CIS
- NGINX Ingress Controller
- Application pods
Many times, we want to spin up a Kubernetes cluster with the resources listed above for a quick demo, educational purposes, experimental testing or to simply run a command to view its output. However, the creation and deletion processes are both however error prone and time consuming. In addition, we don't want the overhead and cost of maintaining the cluster and keeping the instances/virtual machines running. And we'd like to tear down the deployment as soon as we're done.
Solution
We need to automate and integrate predictably the creation steps described in
- F5 Clouddocs: To deploy BIG-IP CIS and F5 IngressLink.
- NGINX documentation: To deploy NGINX Ingress Controller.
Refer to my GitHub repository to perform this using either:
Disclaimer: The deployment in the GitHub repository is for demo or experimental purposes and not meant for production use or supported by F5 Support. For example, the Kubernetes nodes are configured to have public elastic IP addresses for easy access for troubleshooting.
- kops: kops takes about 6-8 mins to deploy a Kubernetes cluster on AWS. You can complete the BIG-IP CIS/Ingress Link deployment in about 15 mins.
OR
- eksctl: eksctl takes about 25-28mins to deploy an EKS cluster on AWS. You can complete the BIG-IP CIS/Ingress Link deployment in about 35mins.
If you don't need the Kubernetes resources eksctl creates, such as an EKS cluster managed by Amazon's EKS control plane and at least two subnets in different availability zones for resilience and so on, kops is a faster option.
For any bugs, please raise an issue on GitHub.
- KinEmployee
Indeed, hopefully, with higher adoption, Kubernetes will evolve to be, like you mentioned, less costly to operate.
- Charles451Nimbostratus
Kubernetes benefits medium-to-large scale containerized workloads. For a single monolithic app, the negatives outweigh the benefits of using Kubernetes by a large margin.
For your use case, a hosted application service would be recommended. If you prefer having more control, rolling your own EC2 infrastructure would be the next best recommendation.
To say Kubernetes is easier for developers is a false statement. In actuality, Kubernetes is a very complex and costly system to operate effectively. There is a lot of operational overhead to run a Kubernetes cluster securely and effectively.