Network

How to use container insights to get the full benefits of Azure Monitor for Azure Kubernetes workload

Container-insights-1

When deploying a production-grade workload there is the need to make sure that the agent nodes are working the way they should because Azure takes care of making sure that the master node is working well and fine. Our only headache is the agent nodes or worker nodes. In this guide, I will walk you through how to use container insight to make sure our container workload is alright. Kindly refer to these related guides: How to create a static pod in Kubernetes with demos that can help you become a better Kubernetes administrator and how to create and deliver a report on System Utilization on a Linux-based OS.

Azure Monitor gathers information from Azure resources, apps, and operating systems. In our example, it collected its data from a special feature in the Azure monitor called container insight.  The type of data collected depends on the resource, and it might be a metric, a log, or both, which is then utilized for analysis, visualization, alerts, automation, and other purposes.

Container Insight is a feature of Azure monitor that can be used to monitor an Azure Kubernetes workload. Before we proceed, we need to create an AKS cluster. Creating an AKS cluster requires the following:

1. An account set up in portal www.portal.azure.com
2. Azure Cli installed on our local machine you can get the cli from https://docs.microsoft.com/en-us/cli/azure/

once you see that you are logged in, you are all set up and start working ( I still use my account from school days because I get free Azure credits with it, so you might want to make good use of your student email from your university days to verify in your usual azure account and you will have the benefits as well )

az-login
fig1. interaction in PowerShell after installing Azure CLI

Steps to create an AKS Cluster

  1. From your portal locate resources
  2. click on containers
  3. Cluster details: we have to make sure that Preset configuration is Standard ($$). you can look at the link for more help Cluster configuration presets in the Azure portal.
  4. Add Kubernetes cluster name, such as techDirectArchive Cluster
  5. pick your desired  Region and Kubernetes version for the AKS cluster.
  6. Primary node pool:Leave the default values selected but you should reduce the maximum node count from the default or else you will get an error. When you see a validation passed just as in fig 3 below you are good to go
aks-cluster
fig 2. cluster configuration
validation
fig 3. validation checked

The completion process might take up to 5 minutes or more

succeeded
fig 3 running cluster

We need to connect to the just-created techDirectArchieve cluster. if you are using PowerShell, make sure that you have installed Azure CLI. Also, you can just use cloud shell on the top right-hand side of the portal. if you use cloud shell make sure that you mount storage before you proceed

az aks get-credentials --resource-group techdirectarchive --name techDirectArchive
cloud-shell
fig 4 connected cloud shell to our running cluster
if we inspect the nodes with kubectl get nodes
kubectl-get-nodes-3
fig 5 node inspection

we have only one as a result of our initial configuration of node-pool. Next, we need to make our application up and running. We need to create an empty manifest file so that we can declare all the parameters that our app will have

vi techdirectarchive-vote.yaml
yamlaa
fig 6 pod definition file
kubectl apply -f techdirectarchive-vote.yaml
techdirectarchivevoteyaml
fig 7 output of our pod definition file

deployment and service have been created as we can see above. Before we move on to what we are really after, which is using container insight to monitor our created application, we need to test it to see if it’s running.

kubectl get service techdirectarchive-vote-front --watch

It returns an external IP address that can be used to display the app on a browser. use CTRL-C to stop the kubectl watch the process and return to the normal prompt

external-ip
fig 8 watching the process

Now that the container is up and running, we will focus on how to use container insight to get metrics about our running container. Container insight gets automatically enable with every running container. To locate the container from insight, follow the guide below

Check Azure Kubernetes resource in Azure portal  
look for monitoring and then choose Insights.
At the top, click on + Add Filter.
Select Namespace as the property, then choose <All but kube-system>.
Select Containers to view them.
rga
fig 9. cluster-info page

The performance of workloads deployed in Kubernetes clusters may be monitored using Container Insights. Container insights may display performance by utilizing the Metrics API to collect data from Kubernetes containers. Logs from containers are also collected.

From the image, under the monitoring section on left, click on insights

filtercontainer
fig 10. container insight configuration page of our created cluster

From the image, click add filter and choose namespace for property for value select <all but kube-system>

second-to-last-az
fig 11. container details

From the image, at the right-hand side, the view in analytics and open in another window to view logs about the container. from our pod definition file our container was callled azure-vote-back and Azure-vote-front The logs include the stdout and stderr streams from azure-vote-back and azure-vote-front containers.

finallogs
fig 12. container logs

In Summary, to be able to monitor an AKS workload, first of all, we needed to create the cluster and connected it to it using the resource group name (techdirectarchive)and the cluster name(techDirectArchive). Next, we created the application( azure-vote-back) in our example using vi editor. When we ran the kubectl apply -f against our pod definition file we got deployment and service as shown in fig 7, showing that the container was successfully created.

Finally, Microsoft Azure Monitor provides a centralized platform for measuring and monitoring the performance of your apps and systems, as well as the resources they use. Custom performance tracking can also be achieved by combining Azure Monitor with a variety of other systems and utilizing custom log queries.

Cloud resources consume money so please, make sure you have deleted the Kubernetes cluster when you are finally done with practicing along. lastly, please  let us know if you found this Azure Kubernetes Cluster and Container Insight guide helpful in the comments section below.
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Kindly subscribe to TechDirectArchive
This is default text for notification bar