Skip to main content

Posts

Understand Kubernetes Object–Service

This is the fourth part of the series on building highly scalable multi-container apps using AKS. Previous posts in this series:Part 1 :  we provisioned a managed Kubernetes cluster using Azure Container Service (AKS). Part 2 : Understand basic Kubernetes objects - Kubernetes Namespace.Part 3 : Understand basic Kubernetes objects – Pod and DeploymentThis post we will focus on creating another basic resource in Kubernetes named Service.We will be performing following actions during this postUnderstand the basics of Service object in KubernetesBuild Kubernetes service manifest fileCreate a service using Kubernetes CLI kubectlGet details about Service using kubectlGet Details about service using Kubernetes dashboardDelete service using KubectlUnderstand the basics of Service object in KubernetesIf you recall from the last post, we successfully deployed the web application container using the Deployment controller. If we want to access the web user interface, how do we do that? This is wh…

Understand Kubernetes Objects – Pod and Deployment

This is the third part of the series on building highly scalable multi-container apps using AKS. Previous posts in this series:Part 1 :  we provisioned a managed Kubernetes cluster using Azure Container Service (AKS). Part 2 : Understand basic Kubernetes objects - Kubernetes Namespace.This post we will focus on creating another basic resource in Kubernetes named Pod. We will be performing the following actions during this postGet familiar with Pod and DeploymentCreate a Pod using Kubernetes manifest file via Controller (Deployment)Find details about the Pod and Deployment using Kubernetes CLI kubectlFind Pod and deployment details using Kubernetes dashboardDelete the Deployment using Kubernetes CLI kubectlDelete Deployment using Kubernetes dashboardPodA pod is the smallest unit of deployment in Kubernetes. Usually a pod consists of a single container and its related resources like storage/networking and the specification of how to run the container. This is illustrated in the diagram …

Understand Kubernetes Objects – Namespace

This is the second part of the series on building highly scalable multi-container apps using AKS. In the earlier post  we provisioned a managed Kubernetes cluster using Azure Container Service (AKS). I will reuse the code which was prepared for my talk during the Global Azure Bootcamp event in Singapore on 21st April 2018. This post we will focus on creating one of the most basic resource in Kubernetes. Lets get started with some basic understanding of the Kubernetes objects.We will be performing the following actions during this postCreate a namespace using kubectlCreate a namespace using Kubernetes manifest fileDelete the namespace using kubectlFind details about the namespace using kubectlKubernetes ObjectsKubernetes or K8s as it is commonly called has support for different types of objects. It provides different ways to create basic objects like Namespace, Pod, Volume, Service, etc. There are higher level API’s which make use of the basic objects. These include things like Deploym…

The goodness of Azure CLI Interactive shell

BackgroundOff late I have been working a lot with terminal and command line interface (CLI) for things like Docker, Azure, Kubernetes etc. While working with these wonderful technologies they provide an easy way to auto-complete different commands. Without auto-completion its a nightmare to remember the syntax for each & every command. Even with auto-completion enabled sometimes it is really a pain to remember different parameters a command can take. Sometimes you have multiple options which can be assigned as a parameter value. Most of the times I find using the help feature with –h or –help option to know all these details about the command, its parameters and available options. If you are starting new with some technology like Kubernetes or with cloud provider like Azure which has various services which can be managed using CLI it can be really difficult to get started. When it comes to Azure CLI there is an easy option called Interactive which simplifies things to a great exte…

Provision Kubernetes cluster using AKS

BackgroundThis is the first part of the series on building highly scalable multi-container apps using AKS. As mentioned in the earlier post I will be building this series using Kubernetes as an Orchestrator for managing the cluster on which our Docker containers will be running. I assume that the readers have preliminary knowledge about Docker and containers in general.Need for OrchestrationLets try to understand the need for container orchestration. Docker containers are great at packaging the applications into self contained images. When we start running these images as containers in production, we need to address cross-cutting concerns like high availability, monitoring, resilience, scaling, disaster recovery etc. Containers on their own are not capable of addressing such requirements. This is where Container Orchestration comes into the picture. Think of it as an operating system for containers which also has many other advanced features apart from managing the lifecycle of contai…

Highly scalable multi-container apps using AKS

Earlier I had written a series of posts on how to build a Continuous Deployment pipeline along with Continuous Integration for multi-container application using Docker and Visual Studio Team System (VSTS). Today I begin a new series of posts about building highly scalable application using Docker. While the earlier series was using Docker Swarm as an Orchestration Engine running in Azure Container Service (ACS), this series will be based on the Azure Container Service (AKS). AKS provides Kubernetes as managed service in Azure. One of the reason for moving away from Docker Swarm is based on the recent announcement from Microsoft that Kubernetes is available as a new managed service. Kubernetes is becoming a de facto standard for container orchestration. Although Azure will support existing Docker Swam & DC OS cluster deployments, the future seems to be moving in the direction of Kubernetes.Pre-requisitesI will be building this demo on top of the previous codebase. The pre-requisite…

Docker Desired State Configuration with Swarm running in Azure

During the series of posts on implementing Continuous Deployment of Multi-Container App in Azure using VSTS and Docker, I had demonstrated how to use Docker compose file to specify the services I we want to run in target deployment environment. In this post we will see how to utilize the features provided by Docker Swarm and Docker compose to manage the Desired State Configuration (DSC) for various services running inside Docker Swarm in Azure provisioned using Azure Container Service (ACS).Desired State ConfigurationDesired State Configuration is a term used to describe how a target environment should look like. When the system is up and running it has a current state. Assume that there is a failure like hardware failure or loss of a node in a cluster. We had some workload running on the failed node. We will have to ensure that the task which was running on the failed node is resumed on some other available node. Usually Orchestrators are capable of handling such things. In our examp…