Azure Kubernetes Service: Host ASP.NET Core 3.0 app in Docker Windows Server containers

Kubernetes has production level support for Windows nodes and Windows containers starting v1.14. The preview of Windows Server containers in Azure Kubernetes Service was announced recently and in this article I am going to share steps needed to run Windows containers in AKS.

  • Create a ASP.NET Core 3.0 (preview) application
  • Build and Publish Docker Image (Windows Server 2019)
  • Deploy ASP.NET Core 3.0 application to Windows nodes in Azure Kubernetes Service cluster

The dev tools used to develop these components are Visual Studio 2019/VS Code/Visual Studio for Mac, Docker for Windows (Docker CE) & Kubectl. AKS Dashboard as well as kubectl commands are used to create Kubernetes resources in AKS. The source code is available for download at GitHub.

Continue reading “Azure Kubernetes Service: Host ASP.NET Core 3.0 app in Docker Windows Server containers”

Configure Kubernetes Liveness and Readiness probes for ASP.NET Core 2.2 web application using Health checks

Health checks API is one of the new features of ASP.NET Core 2.2 for application health monitoring. Health checks are exposed by ASP.NET Core 2.2 application as HTTP endpoints which enables liveness and readiness probes.

Health checks are usually used with an external monitoring service or container orchestrator to check the status of an app. In this article, I am going to share steps needed to configure Kubernetes Liveness and Readiness probes for an ASP.NET Core 2.2 web application deployed in Azure Kubernetes Service cluster.

The dev tools used to develop these components are Visual Studio for Mac/Visual Studio 2017 and Visual Studio Code. AKS Dashboard as well as kubectl commands are used to create Kubernetes resources in AKS. The complete source code for this application can be downloaded from GitHub

Continue reading “Configure Kubernetes Liveness and Readiness probes for ASP.NET Core 2.2 web application using Health checks”

Deep dive – Create and configure an Azure Kubernetes Services (AKS) cluster to use virtual nodes to scale the cluster

This article provides insights into Virtual Nodes feature (in preview) of Azure Kubernetes Service (AKS). Enabling virtual nodes for AKS cluster allows to deploy or burst out containers to nodes backed by serverless Azure Container Instances beyond the defined cluster size. Also, along with fast provisioning of Pods, you only pay per second for their execution time. AKS virtual nodes currently support Linux container instances only.

Continue reading “Deep dive – Create and configure an Azure Kubernetes Services (AKS) cluster to use virtual nodes to scale the cluster”

Host your ASP.NET Core 2.2 Web App with IIS (in-process and out-of-process hosting model) and deploy to Docker Windows Containers

One of the new features of ASP.NET Core 2.2 is support for hosting ASP.NET Core Web App with IIS using in-process or out-of-process hosting model. This article will cover steps needed to

  • Host ASP.NET Core 2.2 Web API with IIS using in-process hosting model
  • Host ASP.NET Core 2.2 Web API with IIS using out-of-process hosting model
  • Host ASP.NET Core 2.2 Web API in Docker Windows containers (with IIS)

In ASP.NET Core 2.2, a new ASP.NET Core Module (AspNetCoreModuleV2) has been introduced which is a native IIS module that plugs into the IIS pipeline and provides in-process or out-of-process hosting capabilities. AspNetCoreModule used to be the module in previous version.

Continue reading “Host your ASP.NET Core 2.2 Web App with IIS (in-process and out-of-process hosting model) and deploy to Docker Windows Containers”

Azure Kubernetes Service/Kubernetes Tip: View POD/Container logs using kubectl

When developing and troubleshooting components deployed in Kubernetes cluster, POD logs can be viewed by running command kubectl logs {POD_NAME}

Adding -f argument will let you view stream and command is kubectl logs {POD_NAME} -f

Lastly, --previous argument will let you view logs for a previous instantiation and command is  kubectl logs {POD_NAME} --previous

The command arguments listed above are valid for viewing logs for a specific container within a POD however you will need to specify container name by adding -c argument and command is kubectl logs {POD_NAME} -c {CONTAINER_NAME}

Hope this tip helps you in troubleshooting components deployed in Kubernetes cluster.

Deploy SonarQube to Azure Kubernetes Service cluster and integrate with Azure DevOps build pipeline

This is the next part of the series on developing and deploying

  • Angular, ASP.NET Core Web API and SQL Server to Azure Kubernetes Service
  • Function Apps using Azure Functions 2.0 runtime

In this article, I am going to share steps needed to deploy SonarQube to Azure Kubernetes Service cluster and integrate with Azure DevOps pipeline to setup code analysis for Angular and ASP.NET Core web apps created in previous parts of this series. The previous articles of this series are

Azure Kubernetes Service (AKS) – Deploying Angular, ASP.NET Core and SQL Server on Linux

ASP.NET Core 2.1 Web API – Load App Configuration from appsettings.json, Dockerfile environment variables, Azure Key Vault Secrets and Kubernetes ConfigMaps/Secrets

Azure Functions 2.0: Create, debug and deploy to Azure Kubernetes Service (AKS)

Azure Functions 2.0: Create Function App from Docker Image (Functions triggered by Cosmos DB, Blob storage, Event Hub and SignalR service bindings)

Add real-time web functionality to Angular application using ASP.NET Core SignalR, Azure SignalR service and Azure SignalR Service bindings for Azure Functions 2.0

The tools used to develop these components are Visual Studio for Mac/VS Code/VS 2017, AKS Dashboard, Docker for Desktop and kubectl.

SonarQube

SonarQube provides the capability to not only show health of an application but also to highlight issues newly introduced. I am going to configure SQL Server as backend database for SonarQube.

Continue reading “Deploy SonarQube to Azure Kubernetes Service cluster and integrate with Azure DevOps build pipeline”