Sergey Tarasov - stock.adobe.com
With the growing popularity of containers in the enterprise, administrators require assistance to deploy and manage these workloads, particularly in the cloud.
When you consider the growing prevalence of Linux and containers both in Windows Server and in the Azure platform, it makes sense for administrators to get more familiar with how to work with Kubernetes in Azure.
Containers help developers streamline the coding process, while orchestrators give the IT staff a tool to deploy these applications in a cluster. One of the more popular tools, Kubernetes, automates the process of configuring container applications within and on top of Linux across public, private and hybrid clouds.
For companies that prefer to use Azure for container deployments, Microsoft developed the Azure Kubernetes Service (AKS), a hosted control plane, to give administrators an orchestration and cluster management tool for its cloud platform.
Why containers and why Kubernetes?
There are many advantages to containers. Because they share an operating system, containers are lighter than virtual machines (VMs). Patching containers is less onerous than it is for VMs; the administrator just swaps out the base image.
On the development side, containers are more convenient. Containers are not reliant on underlying infrastructure and file systems, so they can move from operating system to operating system without issue.
Kubernetes makes working with containers easier. Most organizations choose containers because they want to virtualize applications and produce them quickly, integrate them with continuous delivery and DevOps style work, and provide them isolation and security from each other.
For many people, Kubernetes represents a container platform where they can run apps, but it can do more than that. Kubernetes is a management environment that handles compute, networking and storage for containers.
Kubernetes acts as much as a PaaS provider as an IaaS, and it also deftly handles moving containers across different platforms. Kubernetes organizes clusters of Linux hosts that run containers, turns them off and on, moves them around hosts, configures them via declarative statements and automates provisioning.
Using Kubernetes in Azure
Clusters are sets of VMs designed to run containerized applications. A cluster holds a master VM and agent nodes or VMs that host the containers.
AKS limits the administrative workload that would be required to run this type of cluster on premises. AKS shares the container workload across the nodes in the cluster and redistributes resources when adding or removing nodes. Azure automatically upgrades and patches AKS.
Microsoft calls AKS self-healing, which means the platform will recover from infrastructure problems automatically. Like other cloud services, Microsoft only charges for the agent pool nodes that run.
Starting up Kubernetes in Azure
The simplest way to provision a new instance of an AKS cluster is to use Azure Cloud Shell, a browser-based command-line environment for working with Azure services and resources.
Azure Cloud Shell works like the Azure CLI, except it's updated automatically and is available from a web browser. There are many service provider plug-ins enabled by default in the shell.
Open Azure Cloud Shell at shell.azure.com. Choose PowerShell and sign in to the account with your Azure subscription. When the session starts, complete the provider registration with these commands:
az provider register -n Microsoft.Network
az provider register -n Microsoft.Storage
az provider register -n Microsoft.Compute
az provider register -n Microsoft.ContainerService
Next, create a resource group, which will contain the Azure resources in the AKS cluster.
az group create --name AKSCluster --location centralus
Use the following command to create a cluster named AKSCluster1 that will live in the AKSCluster resource group with two associated nodes:
az aks create --resource-group AKSCluster --name AKSCluster1 --node-count 2 --generate-ssh-keys
Next, to use the Kubernetes command-line tool kubectl to control the cluster, get the necessary credentials:
az aks get-credentials --resource-group AKSCluster --name AKSCluster1
Next, use kubectl to list your nodes:
kubectl get nodes
Put the cluster into production with a manifest file
After setting up the cluster, load the applications. You'll need a manifest file that dictates the cluster's runtime configuration, the containers to run on the cluster and the services to use.
Developers can create this manifest file along with the appropriate container images and provide them to your operations team, who will import them into Kubernetes or clone them from GitHub and point the kubectl utility to the relevant manifest.
To get more familiar with Kubernetes in Azure, Microsoft offers a tutorial to build a web app that lets people vote for either cats or dogs. The app runs on a couple of container images with a front-end service.