Kubernetes in Azure: Tools and Tips for Success
Learn more about the best practices and tools for using Kubernetes and Azure.
Join the DZone community and get the full member experience.Join For Free
“Containers are the future of cloud” is a commonly heard refrain. It’s one that not many seem to be contesting. Cloud providers are doing their best to accommodate this demand for containerization, and Azure is no exception. They first released a general container service in 2016. Then, in 2018, Azure released a Kubernetes specific service. Read on to learn what are the benefits of using Kubernetes in Azure, and how to optimize Azure deployments.
You may also enjoy: Introduction to Docker and Kubernetes on Azure
Why Use Kubernetes in Azure?
Kubernetes (K8s) is an open-source platform. You can use it to automate, scale, and manage the deployment of containerized workloads. It is the most commonly used container orchestration tool and is widely supported. If you are using containers, you are likely going to use Kubernetes. For many, this means using Kubernetes with an existing cloud vendor, such as Azure.
There are three main reasons to run Kubernetes on Azure:
- You want to develop and/or use cloud-native applications and Azure is the option that suits your needs.
- You’re an existing Azure customer and you want to start using containers with your cloud services.
- You want to take advantage of the various managed services and integrations that Azure provides for Kubernetes.
Kubernetes enables you to use Azure resources without worrying about vendor lock-in. This makes it easier to create hybrid clouds. Its cloud-native nature also enables you to take advantage of the standard benefits of clouds. For example, scalability, lower cost, and global connectivity.
If you are already using Azure or planning to migrate, you can use containers to make your migration easier. Containerization can simplify the transfer of legacy applications. You can also use it to move applications between cloud services if you are moving to Azure from another vendor.
Tools and Tips for Using Kubernetes With Azure
Once you have decided to use Kubernetes with an Azure cloud, it is helpful to familiarize yourself with the available services. You’ll also want to apply some tips and best practices to ensure that your Azure-K8s performance meets your needs.
Tools and Services for Running K8s in Azure
The following are the three main products that Azure provides for working with Kubernetes. There are also numerous third-party integrations you can use. Many of these integrations are available through the Marketplace.
Azure Kubernetes Service (AKS)
To use AKS, you simply need to specify the number of worker nodes you wish to use. Then, configure the settings applying to those nodes. Azure then creates and operates the Kubernetes control plane for you. This service is free to use. You are, however, responsible for the cost of the virtual machines, storage, and networking resources it consumes.
AKS includes features for highly-available clusters, automated version upgrades, and event-driven autoscaling. It integrates with existing Azure services, including Search, Monitor, Load Balancer, Visual Studio Code, and Azure DevOps.
Visual Studio (VS) Code
Visual Studio Code is a code editor that you can use on Windows, Linux, or mac OS. It is free to use for private or commercial purposes. VS Code includes features for code autocompletion, debugging, Git, and a variety of extensions.
One of the extensions available for VS Code is the Kubernetes Tools extension. This extension includes features to help you develop Kubernetes manifests and helm charts. It also enables you to debug live applications. You can use it to deploy applications to self-hosted Kubernetes or directly to AKS. To deploy to AKS, you need to first install the Azure Command Line Interface (CLI).
Azure Dev Spaces
Dev Spaces is a service that enables you to iteratively develop and test microservices in AKS. It can help simplify unit testing since it doesn’t require replication or mocking of dependencies. It was designed to help ease collaboration. Dev Spaces includes features that enable you to run and debug containers in AKS and share cluster environments. It is intended for development and testing, not production use. You can use Dev Spaces with the Azure CLI or with VS Code.
Tips for Running Kubernetes in Azure
Once your Kubernetes clusters are deployed, you should continue to monitor and refine your cluster performance. You can use cAdvisor and Azure Monitor to understand your resource use and performance. cAdvisor is an open-source daemon. It collects, aggregates, processes, and exports resource use and performance metrics for each of your containers. Azure Monitor is Azure’s paid service. Azure Monitor uses cAdvisor endpoints to gather performance metrics.
When configuring your nodes, make your configuration specific to your workloads. In particular, pay attention to how you set requests and limits. Requests and limits dictate the CPU and memory resources clusters can use. Requests can help you ensure that your applications remain available by guaranteeing sufficient cluster resources. Limits can help ensure that you are not wasting resources by guaranteeing that clusters don’t consume too many resources.
When deciding where to run your clusters, consider deploying in multiple regions. Having clusters in the same regions as your users will help decrease latency. Multiple clusters in different regions can be used to eliminate single points of failure and speed disaster recovery. You can use Azure’s Traffic Manager service to route traffic between clusters in AKS.
Finally, when deciding which storage to use with your clusters, choose the type carefully. Storage types offered by Azure include Azure files and Azure managed disks. SSD storage should be used for production environments as it can provide higher throughput and lower latency.
Hopefully, this article helped you better understand how you can benefit from using Kubernetes and Azure together. The tools and tips covered here can provide you with a place to start as you work to refine your process of development and deployment.
Once you’re ready to really fine-tune your configurations, consider checking out the Azure/Kubernetes best practices community on GitHub. There, you can find more specific practices and guidance.
Opinions expressed by DZone contributors are their own.