This is in continuation of the Kubernetes article series. In the earlier posts, we have seen how to create & deploy a simple cluster. Now in this post, we are going to look at recently launched offerings from Microsoft Azure.
Azure Kubernetes Service (AKS) is managed Kubernetes offering from Azure. As a hosted Kubernetes service, Azure handles all heavy lifting of all the complexity, the operational overhead of managing a Kubernetes cluster for you.
As a managed Kubernetes service, AKS provides:
In short, AKS would provide a container hosting environment by using open-source tools and technologies. To this end, standard Kubernetes API standard endpoints are exposed and you can leverage any software that is capable of talking to a Kubernetes cluster. Like for example,kubectl
Now we can see how to create a simple cluster using AKS.
This quickstart assumes a basic understanding of Kubernetes concepts, please refer earlier posts for understanding on Kubernetes & how to create, deploy & rollout updates to the cluster.
Quick Snapshot
Once you login to Azure Portal, on the upper right corner, there is an option to Azure Cloud Shell. Azure Cloud Shell is a free Bash shell that has the Azure CLI preinstalled and configured to use with your account. Learn more about Azure Migration Services and Azure Windows Virtual Desktop.
From the Azure Shell, enable AKS preview by the below command.
az provider register -n Microsoft.ContainerService
On the registrationState
the field you can see that its ‘Registering’, you can check the status of the registration by the following command.
az provider show -n Microsoft.ContainerService
Once registration is complete, we are now ready to create a Kubernetes cluster with AKS.
Before we create the cluster & nodes, we would need to create an Azure resource group which is nothing but a logical group in which Azure resources are deployed and managed.
Create new resources using the below command.
az group create --name k8SResourceGroup --location westus2
Before proceeding to the next step, check the provisioningState
on the output. It should be “Succeeded”
Create a sample cluster named myK8sCluster with one node.
az aks create --resource-group k8SResourceGroup --name myK8sCluster --node-count 1 --generate-ssh-keys
The above command would take some time to create the cluster, once the command completes and returns JSON-formatted information about the cluster.
For us to connect, manage the Kubernetes cluster, we are going to use kubectl, the Kubernetes command-line client. Azure cloud shell has already built-in kubectl so we don’t have to install them separately.
To configure kubectl to connect to our Kubernetes cluster, run the following command. This step downloads credentials and configures the Kubernetes CLI to use them.
az aks get-credentials --resource-group k8SResourceGroup --name myK8sCluster
To verify kubectl configuration, check the version of kubectl
Now we are going to create new Kubernetes manifest file that defines the desired state for the cluster, including what container images should be running etc.,
Create a file named Deployment.yml, you can use vi editor to create this file.
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
Use the kubectl create command to deploy the application.
In this example:
Now that deployment is created, let’s check the deployment information using kubectl get deployment command :
When you inspect the Deployments in your cluster, the following fields are displayed:
NAME
lists the names of the Deployments in the cluster.DESIRED
displays the desired number of replicas of the application, which you define when you create the Deployment. This is the desired state.CURRENT
displays how many replicas are currently running.UP-TO-DATE
displays the number of replicas that have been updated to achieve the desired state.AVAILABLE
displays how many replicas of the application are available to your users.AGE
displays the amount of time that the application has been running.Describe the deployment using kubectl describe deployment command to check the details on the deployment.
Kubernetes Service
is an abstraction that defines a logical set of Pods
and a policy by which to access them (micro-service). The set of Pods
targeted by a Service
is determined by a Label Selector
Kubernetes has powerful networking capabilities that control how applications communicate. These networking configurations can also be controlled via YAML. The Service selects all applications with the label Nginx. As multiple replicas, or instances, are deployed, they will be automatically load-balanced based on this common label. The Service makes the application available via a NodePort.
Create a new file named svc.yml to define load balancers & apps.
apiVersion: v1 kind: Service metadata: name: nginx-svc labels: app: nginx spec: type: LoadBalancer ports: - port: 80 selector: app: nginx
Use kubectl create command to create a new service based on the svc.yaml file created in the previous step.
Once the External-IP is available, we can browse the Nginx page.
Image – Nginx landing page
Finally, now its time to clean up the resources what we have created:
kubectl delete service my-nginx
kubectl delete deployment my-nginx
Like this post? Don’t forget to share it!
There are few things as valuable to a business as well-designed software. Organizations today rely…
The cryptocurrency industry is being reshaped by the fusion of blockchain technology and artificial intelligence…
Introduction Artificial Intelligence (AI) has also found its relevance in graphic design and is quickly…
Imagine a world where the brilliance of Artificial Intelligence (AI) meets the unbreakable security of…
In today’s fast-paced digital landscape, automation is not just a luxury but a necessity for…
The world of casino gaming has leveraged the emerging technology advancements to create immersive and…
This website uses cookies.