Azure Kubernetes Service (AKS) Deployment: A Step-by-Step Guide
Azure Kubernetes Service (AKS) Deployment: A Step-by-Step Guide
Cloud-native technologies have revolutionized the way we deploy and manage applications, and Microsoft Azure's Kubernetes Service (AKS) is a standout among managed Kubernetes solutions. In this post, we'll walk through how to deploy a Kubernetes cluster using AKS, manage it using Azure CLI, and deploy a sample application to the cluster.
Why Use Azure Kubernetes Service (AKS)?
- Managed Service: AKS automates critical tasks such as provisioning, upgrading, and scaling of Kubernetes clusters.
- Integration with Azure services: Seamlessly integrates with Azure Active Directory (AAD) for access control, Azure Monitor for logging and monitoring, and more.
- Cost Efficiency: Only pay for agent nodes; the Kubernetes master nodes are managed by Azure and free of charge.
Prerequisites
- An active Azure subscription
- Azure CLI installed (Install Azure CLI)
Step 1: Set Up Azure CLI
Log in to your Azure account via Azure CLI:
az login
If you have multiple subscriptions, set the desired subscription:
az account set --subscription "your-subscription-id"
Step 2: Create a Resource Group
Create a new resource group for your AKS cluster:
az group create --name myResourceGroup --location eastus
Step 3: Create an AKS Cluster
Create an AKS cluster in the resource group:
az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 3 --enable-addons monitoring --generate-ssh-keys
This command creates a Kubernetes cluster named myAKSCluster
with three nodes and enables monitoring and logging functions.
Step 4: Configure kubectl
To manage your new AKS cluster, configure kubectl
:
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
This command merges your AKS cluster credentials with your existing kubectl
configuration, allowing you to interact with your AKS cluster using kubectl
commands.
Step 5: Deploy a Sample Application
Now let’s deploy a sample application to verify that our AKS cluster is functioning correctly. We’ll use a YAML
file to deploy a simple Nginx web server.
Create a file named nginx-deployment.yaml
with the following content:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.16.0
ports:
- containerPort: 80
Deploy the application using the following command:
kubectl apply -f nginx-deployment.yaml
To expose the deployment as a service and access it through a public IP, create a file named nginx-service.yaml
with the following content:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: LoadBalancer
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
Deploy the service:
kubectl apply -f nginx-service.yaml
To retrieve the external IP of the service, run:
kubectl get service nginx-service
Step 6: Clean Up Resources
When you’re done experimenting, make sure to clean up your resources to avoid unnecessary costs:
az aks delete --resource-group myResourceGroup --name myAKSCluster --yes --no-wait
az group delete --name myResourceGroup --yes --no-wait
Conclusion
Setting up and managing a Kubernetes cluster with Azure Kubernetes Service (AKS) simplifies the operational complexity associated with Kubernetes. By leveraging Azure's integrated services, you can quickly deploy, monitor, and scale your applications. This step-by-step guide provides a practical introduction to getting started with AKS, paving the way for more complex setups and integrations.