6. OVERVIEW OF AKS
What is Azure Kubernetes Service (AKS)?
• Azure Kubernetes Service (AKS) is a managed container orchestration service
provided by Microsoft Azure.
• It simplifies the deployment, management, high availability, load balancing,
scaling and monitoring containerized applications, an open-source container
orchestration platform.
• Kubernetes consists of master-worker node architecture.
• Master node: hosts the control plane which is responsible for
maintaining the desired state of the cluster.
• Worker node: On the other hand, worker nodes sometimes called data
plane, are responsible for running the containers in pods. They
report their status to control plane.
• A Kubernetes cluster contains many Kubernetes objects, but for the moment,
we will only discuss about nodes, deployments, pods and services.
6
7. AKS TERMINOLOGY
7
Cluster: Kubernetes is organized as a cluster of virtual or on-premises machines. These machines—called
nodes—share compute, network, and storage resources. Each cluster has one master node connected to one or
more worker nodes. The worker nodes are responsible for running groups of containerized applications and
workloads, known as pods, and the master node manages which pods run on which worker nodes.
Pods: A pod in Kubernetes is the essential scheduling element. A pod is a group of one or more containers. This
means a pod can contain either a single container or multiple containers
Deployment: It allows you to create multiple pods from the same definition and to easily perform updates to
your deployed pods. A deployment also helps with scaling your application, and potentially even autoscaling your
application. Under the hood, a deployment creates a ReplicaSet, which in turn will create the replica pods you
requested.
ReplicaSet: ReplicaSet is another object in Kubernetes. The purpose of a ReplicaSet is to maintain a stable set
of replica pods running at any given time.
Service: Service in Kubernetes is a network-level abstraction. This allows you to expose multiple pods under a
single IP address and a single DNS name.
8. ARCHITECTURE OF AKS 8
Master node / Control Plane components
• etcd: It stores critical information such as configuration data, and the current state of the cluster. This
information includes data about pods, services, nodes, and more.
• kube-apiserver: The API server is the central control point for the Kubernetes cluster. It exposes the
Kubernetes API, which allows you to interact with the cluster to create, update, and manage resources
such as pods, services, deployments, and more. It also authorizes the requests.
• controller manager: The controller manager is responsible for managing various controllers that ensure
the desired state of the cluster matches the actual state.
• kube-scheduler: Its primary function is to watch for new pods that are scheduled to be deployed and
determine the best node to run each pod on.
• cloud controller manager: Cloud controller managers communicate with the cloud provider's API to
manage resources that are specific to that cloud environment. Bride between the Kubernetes API and
cloud provider API. Responsible to create, update or delete resources in cloud like VMs, load balancers
disks, etc.
Worker node components
• kubelet: The kubelet is an agent that runs on each node in a Kubernetes cluster. The kubelet manages
the state of pods on a node. It starts and stops containers, and it watches over the pods' health, restarting
them if they fail.
• container runtime: The container runtime is the underlying software that executes and manages
containers. AKS supports multiple container runtimes, including Docker, containerd. These runtimes
handle the low-level operations of pulling images, creating and launching containers, and managing
container lifecycle.
• kube-proxy: kube-proxy is a network proxy that runs on each node in the Kubernetes cluster. It
maintains network rules and manages network traffic between pods and services.
9. Deploy an Azure Kubernetes
Service (AKS) cluster using
the Azure portal
10. DEPLOYING APPLICATION ON AKS
10
• This manifest includes two Kubernetes deployments:
• The sample Azure Vote Python applications.
• A Redis instance.
• Two Kubernetes Services are also created:
• An internal service for the Redis instance.
• An external service to access the Azure Vote application from the internet.