Azure Kubernetes Service

Azure Kubernetes Service is a Platform-as-a-Service (PaaS). This means that when deploying Azure Kubernetes Service, customers do not need access to master and pod nodes. The only access needed by customers is to the Kubectl CLI tool, which interacts with the API server. Customers of Azure Kubernetes Service do not have to manage the nodes, and Azure will ensure that all upgrades, as well as planned and unplanned maintenance, are taken care of automatically. Customers can deploy their pods on the cluster and can rest assured that the desired state of the container environment will be maintained by Azure Kubernetes Service.

This solution is not complex compared to the previous two solutions and does not require highly skilled Kubernetes operators. The solution is highly scalable as Azure Kubernetes Service provides the means with which you can increase the number of nodes on demand. It is also highly available as Azure Kubernetes Service ensures that if a node goes down, another node is made available to the cluster.

The disadvantage of this solution is that customers lose control over the underlying infrastructure. An important thing to note about this solution is that it works great with Linux-based images; however, there are additional tasks that would need to be performed in the case of Windows. Also, the master nodes are always Linux-based. These are limitations that will definitely change in future as Microsoft makes Windows completely native to containers.

This is one of the highly recommended options and solutions out of all available options.