We’re in the midst of a major shift away from monolithic data centers. As enterprises take on microservices in the cloud, the ease of creating and deploying applications has become a pivotal point in the decision-making process. It heavily influences which hosting platform you’ll choose for your applications.
Cloud-based storage has taken prevalence in this discussion for two reasons: Developers prefer to use containers in the cloud because of the flexibility of Platform-as-a-Service (PaaS) offerings. But standalone containers can’t be used for deployments at scale—there are just too many factors to keep an eye on: high availability, resilience, and security, to name just a few.
Container orchestration platforms help to resolve those challenges by handling critical factors, including container lifecycle management, load balancing, resource allocation, service exposure, protection from host failures, and monitoring.
Among container orchestration platforms on the market today, Kubernetes is the most popular because of its unprecedented open-source community support and compatibility with multiple cloud platforms.
All the leading cloud service providers offer managed Kubernetes services that enable easy deployment and management of Kubernetes clusters. In a managed Kubernetes setup, the cloud service provider will take care of all the heavy lifting, including setting up the control plane, provisioning worker nodes, upgrading cluster versions, and scaling.
One such service, NetAppⓇ Kubernetes Service, takes orchestrating containers one step further by providing a cloud-agnostic orchestration service that can deploy Kubernetes clusters in Google Cloud, Amazon Web Service (AWS), and Azure. It also allows easy integration with prebuilt solutions like Prometheus, Helm, Gitlab, and Istio, as well as out-of-the-box integration with NetApp Cloud Volumes Service using Trident.
Keep reading this tutorial to learn how easy it is to create Kubernetes clusters in AWS using NetApp Kubernetes Service.
Setting Up Kubernetes with NetApp Kubernetes Service
You can set up and configure NetApp Kubernetes Service directly from NetApp’s Cloud Central user interface (UI).
1. Log in to NetApp Cloud Central.
2. Click on “NetApp Kubernetes Service” on the left-hand panel to open the service.
Note: If you are new to NetApp Kubernetes Service, you can sign up for a free trial from the Fabric view window on the right-hand side.
3. In the NetApp Kubernetes Service dashboard, browse to Control plane>Add Cluster:
4. In the “Choose a Provider” window, select your cloud service provider. You can choose from deploying in AWS, Azure, or Google Cloud, or select a managed Kubernetes service from one of these providers. In this walkthrough, we’ll deploy the cluster in AWS using native Amazon EC2 instances.
Note: If you are interested in using Amazon Elastic Kubernetes Service (EKS) with Cloud Volumes Service, you can refer to the setup process in this blog.
5. In the “ Configure Your Provider” window, enter details specific to your AWS account. First, add the credentials required to provision servers in AWS. Click on “Add Credentials”.
6. Add the AWS access key ID and secret access key to create the credentials. Click on “Create Note.” You can follow the steps in this document to create an AWS access key ID and secret access key, if they’re not available.
7. Click “Edit” to configure the AWS environment that will be used for the cluster.
8. Update the following settings, per your requirements: number of master nodes, number of worker nodes, AWS region where the cluster will be deployed, AWS virtual private cloud (VPC) to which the cluster should be connected, the zone, and the subnet. When you’re done, click on “Save”.
9. Ensure that the remaining settings match your organization’s requirements:
- Clusters are scoped under organizations and workspaces. Workspaces allow you to control access to NetApp Kubernetes Service users. In this example, we will use the default workspace.
- Enable Graphical Processing Unit (GPU) support for the cluster.
- A default SPC SSH key pair will be used to access individual nodes in the cluster.
When you’ve filled in the appropriate information, click on “Submit”.
10. In the “Configure Your Cluster” window, select the Kubernetes cluster-specific settings. Those settings include cluster name, the version of Kubernetes being used, network to be used by the pods, and service network.
Click on the “Edit” icon next to the Kubernetes version, if you wish to change the version.
11. By default, the cluster will be created with the latest version of the Kubernetes service. If required, you can select an earlier version of Kubernetes from this window.
12. Back on the “Configure your cluster” page, click on “Submit” to create the cluster.
13. You can view the status of the cluster in the NetApp Kubernetes Service dashboard by navigating to Control Plane>Clusters.
When provisioning is completed, a green check mark will appear in the state column.
14. Once the cluster is provisioned, click on the cluster name to view and modify cluster-specific configurations. You can view the master nodes and worker node pool list and add new master or worker nodes.
15. Click on “Kubernetes Dashboard” on the left-hand side to access the dashboard for the cluster.
16. The kubeconfig file that can be used to connect to the cluster can also be downloaded from the dashboard.
17. The quick start instructions on how to connect to this cluster using the kubeconfig file are also available from the dashboard.
The instructions are copied below for reference. You can use it to connect to your cluster to deploy container workloads.
18. Scroll down the NetApp Kubernetes Service cluster dashboard to view other details, like deployments in the clusters and solutions.
Since the cluster is new, only the default deployment in the Kube-system namespace will be listed.
The solutions list includes a variety of easily installable add-ons that can be very helpful to your Kubernetes deployment. You can see that Helm, the popular package management solution, is pre-installed in the cluster during provisioning, thereby enabling you to deploy helm charts directly to the cluster without any admin overhead.
To include another solution in your cluster, click on “Add Solution”.
19. The solutions page will list the solutions that can be installed in your cluster from the NetApp Kubernetes Service dashboard. For this walkthrough, we selected Istio.
20. In the next page, select the add-ons (Istio add-ons, in this instance) you want to include. Click on “Install”.
21. You can view the progress of the installation from the dashboard.
22. Once the installation is successfully completed, you can see that the Istio services deployed in the cluster are listed on the dashboard. You can also create a new Isio route directly from the dashboard through the GUI.
23. If your cluster is using an older version of Kubernetes, the upgrade can be done directly from the NetApp Kubernetes Service dashboard by going to Control Plane>Clusters. Click on the settings icon on the left-hand side to view the upgrade option.
24. The upgrade window will show the available upgrade options. Select the latest version and click on “Upgrade”.
25. You will get a notification that the upgrade has been initiated.
26. Once the upgrade is completed, you can see the new version in the dashboard.
Taking Microservices by Storm
Kubernetes has taken the computing paradigm of microservices architecture by storm, giving developers the flexibility to deploy and manage applications at scale on containers. While this article demonstrated how easy it is to deploy Kubernetes clusters in AWS with NKS, deploying containers for use with stateful applications requires persistent storage to use with persistent volume claims.
Cloud Volumes Service for AWS can act as the backend storage for containers in AWS that can be easily deployed and managed using NetApp Kubernetes Service. Get started with Cloud Volumes Service for AWS now.
Deploy Your First Cluster Today
Sign up for a 30-day free trial of NetApp Kubernetes Service to experience how NKS can transform your enterprise.