Achieving Hybrid Cloud Greatness with Rancher, New Relic, IBM and AWS
How to build and manage your own Hybrid Cloud in 10 minutes or less!
1. Deploy Rancher, the ultimate Kubernetes management tool.
2. Provision a new Amazon EKS Cluster.
3. Import an existing IBM Kubernetes Cluster.
4. Monitor your Hybrid Cloud with New Relic.
5. Deploy an application to all clusters in your Hybrid Cloud.
What is Hybrid Cloud?
Hybrid Cloud is another tech buzz word that is taking over the stratosphere, and of course it means different things to different people (think DevOps, Agile, etc.). I like RedHat’s basic definition of it being an IT architecture spread across a minimum of two environments. Your environments can be public, private, on-premises, or cloud-based.
What is hybrid cloud?
Hybrid cloud is an IT architecture that incorporates some degree of workload portability, orchestration, and management…
What is Rancher?
In short, probably the coolest thing since New Relic! Rancher can help you provision and manage multiple Kubernetes clusters across on-premises and cloud environments from a single web interface. One huge plus is that it also allows you to configure global security with third party providers (Okta, AD, GitHub, etc.) and manage security and role-based access management across your entire Hybrid Cloud.
There are other features besides security, including cool things like DevOps (CI/CD), Snapshotting, Alerts, Logs, a kubectl terminal available in your browser, events, scalability, monitoring, etc.
I would love to hear more about similar tools out there. I am pretty sure I read about Amazon, IBM, RedHat and Google having some type of Hybrid Cloud tooling. I looked at the RedHat OpenShift, and I instantly ran into a CLI (a 1970s thing that just doesn’t go away) and limited cloud providers implementation. Come on RedHat!
Did I mention that Rancher is free and open source?
Ok, let’s do it — we have already wasted 2 minutes from our initial 10!
1. Deploy Rancher
Install Rancher (POC only, look at Rancher HA Installation for Production Environments). It has to be available on a public IP so it can visible to whatever clouds you are trying to create your Hybrid Cloud in.
I simply created an AWS EC2 Ubuntu instance. Ensure it has:
- Public IP.
- Open port 80/443.
- Also, don’t be cheap, there are a lot of features in Rancher that need processing power, so use a T3 Large or some more powerful instance. In the end it is only going to run for 7 more minutes.
Connect via SSH and:
- Install Docker.
- Start Rancher.
sudo docker run -d — restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
- Open a web browser and enter the IP address of your host: https://<EC2_INSTANCE_PUBLIC_IP>.
- Create a password for the default admin account.
- Set the Rancher Server URL. (Use either the public IP address or hostname of your EC2 Instance).
2. Provision a new Amazon EKS Cluster
From Rancher web console… Clusters → Add Clusters → Amazon EKS
On the next screen, enter cluster name (i.e. eks10) and your AWS credentials (Access Key and Secret Key).
NOTE: Use only IAM access keys; using keys generated from the root user will make the cluster unreachable.
Next steps are pretty self-explanatory: select instance size, public IP, security group, ssh key, etc. You will see the cluster being provisioned…
3. Import an existing Kubernetes cluster (IBM Cloud)
I have the following Kubernetes cluster on IBM Cloud:
Clusters → Add Cluster → Import Cluster
Enter Cluster Name:
Follow the steps, and copy and paste the first and last command and run it on your IBM Cloud cluster:
It everything ran correctly, you should have two clusters showing in Rancher:
That is what a Hybrid Cloud looks like! Now, before taking over the world with the other amazing features in Rancher, let’s configure New Relic monitoring…
4. Enable New Relic Monitoring
Enable Helm Registry by navigating to Apps → Manage Catalogs –[Enable All]
Globally install kube-state-metrics
Apps → Launch → [Select kube-state-metrics] → Enter a name and select your target clusters and namespaces
Similarly install newrelic-infrastructure
Here you will have to insert the license key and also override the cluster name for each cluster…
In a minute or so we can see the data on the New Relic UI:
5. Let’s deploy an application across all our Hybrid Cloud clusters
Install Apache HTTP server on all clusters by following the same steps above for deploying applications. We should have these three showing up under Apps tab:
Let’s test. Pick any of the clusters and click on any of the endpoints:
You should see the apache default page:
The sky is the limit, but don’t get stuck in the clouds!