Managing Kubernetes Workloads on EKS using Nirmata
Last week an important milestone was reached in the cloud-native landscape. Amazon Web Services (AWS) finally announced general availability of its managed Kubernetes service – Elastic Container Service (EKS)! Now, all major cloud providers natively support Kubernetes, solidifying it as the de-facto container orchestration platform.
At Nirmata, we have been eagerly waiting for the EKS announcement. Our philosophy has always been to never add unnecessary abstractions, and to directly support best-of-breed cloud services. As an AWS Technology Partner, we are always looking for ways to support and integrate with new AWS services that can help our customers accelerate their adoption of cloud-native technologies.
In this post, I will demonstrate how you can on-board an EKS cluster with Nirmata and deploy and manage applications on it, using Nirmata as a single multi-cloud management plane.
Step 1 – Create the EKS Cluster Master Components
Currently EKS is only available in two regions in the US – US East (N Virginia) and US West (Oregon). Select the region you prefer to start creating the cluster. A prerequisite to creating a cluster is to create an IAM role that will be used to create the cluster.
Create the IAM role by following these steps: https://docs.aws.amazon.com/eks/latest/userguide/EKS_IAM_user_policies.html
Next, select Create Cluster and provide the cluster name along with other related information. Make sure you use the EKS IAM role create earlier. Select the appropriate VPC, Subnets and Security Groups. Click on the ‘Create’ button to start cluster creation. For more detailed instructions, see: https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html
Within a few seconds, cluster creation will begin but it could take several minutes for the cluster to be created. Once the cluster is created you should see the state change to Active. You can click on the Cluster name to view details of your cluster.
Step 2 – Add Worker Nodes
Now, that the master components for the cluster have been provisioned, we can add the worker nodes. For detailed instructions, see: https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html
Worker nodes are added using a Cloud Formation template and the template will vary depending on the region you have selected for your cluster.
At this point, the worker nodes have been created but they are not yet added to the cluster. You should see them in ‘NotReady’ status. To add the worker nodes the the cluster you need to do the following:
- Download and install kubectl and the heptio AWS authenticator: https://docs.aws.amazon.com/eks/latest/userguide/configure-kubectl.html
- Create kubeconfig for your cluster and verify you can get cluster information via the CLI: https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html
Next, you need to create a config map in your cluster so that the worker nodes can join the cluster. See instructions at: https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html
Once the config map is added, you should see the worker nodes change status to ‘Ready’
That’s it! Now you are ready to on-board your EKS cluster to Nirmata.
Step 3 – Add the EKS Cluster to Nirmata
To add your EKS cluster to Nirmata:
- Click on Add Cluster button in the Clusters panel and select ‘Yes I have already installed Kubernetes’
- On the next screen, provide the cluster name and click on ‘Create and discover Kubernetes components
- Next, follow the instructions to download and apply the yaml file to your EKS cluster
- Once the yaml file is applied, click on the ‘I have installed the Nirmata Kubernetes Controller’ button to discovery your cluster.
Within a few seconds, you will see the cluster being added and its components being discovered in Nirmata.
Step 4 – Deploy and Manage a Kubernetes Application
Now that your EKS cluster has been added in Nirmata, you are ready to start deploying applications!
To start deploying your applications:
- Go to the Environments screen and create an environment for the EKS cluster
- Go to the Catalog and import your application yaml files or create a new application.
- Now, add the application to the environment.
In a few seconds, the application should be up and running. At this time you can access the application or perform various operations such as scale up or down or upgrade.
Hopefully, I was able to demonstrate how easy it is to onboard and manage EKS clusters in Nirmata. You can use Nirmata not only to manage EKS clusters but also Azure and Google Kubernetes managed services as well as Kubernetes clusters in your private cloud. Nirmata provides a single management place across all your Kubernetes clusters and enables complete operations & management for your clusters as well as your applications. Check out the short screencast below to view the demo. Also, signup for a free trial or reach out to us if you would like a demo or have more questions.