Container Groups – PaaS Compute Options

A container group is a collection of containers that are scheduled on the same host machine. Since they are scheduled to the same host machine, you can share lifecycles, resources, local networks, and persistent storage volumes. In the next section, we will talk about pods in Kubernetes; container groups are a similar concept. If you look in the Azure portal, you won’t find an option to create container groups; they can be deployed only via a YAML file or ARM templates. An ARM template is the recommended method if you are planning to use services like Azure Files, as the integration is easier in ARM. On the other hand, YAML requires more steps for integration. Nonetheless, it’s recommended if you are deploying container instances only without any service dependencies. Figure 9.14 is a pictorial representation of container groups.

From the diagram it’s evident that a container group has the following attributes:

  • Scheduled on the same host machine
  • Has a DNS label assigned
  • Public IP exposed on a port
  • Multicontainer; one is exposed on port 80 to the Internet and the other one listens on port 1433.
  • Two File shares that will act as the persistent storage

The following are some scenarios where you can leverage container groups and multicontainers:

  • One container runs the web server application, and the other container pulls the latest code from the source control.
  • One container runs the application, and the other container is responsible for pulling logs and metrics from the application container.
  • One container is running the web server application, and the other one is running a database container.

Azure Kubernetes Service

Kubernetes is a platform that is very popular and is used for managing containers at scale. Along with container orchestration, it helps in managing associated dependencies such as networking and storage components. In Kubernetes, you follow declarative deployments like ARM templates.

Using Kubernetes, you can orchestrate and manage the availability of applications. Both stateful and stateless applications can be orchestrated using Kubernetes. With the wide adoption of microservices architecture, Kubernetes is gaining more popularity. Since Kubernetes is an open source platform, you can build your applications using your preferred language, operating system, frameworks, and libraries. Existing CI/CD pipelines can be integrated with Kubernetes easily.

You can download the Kubernetes binaries and create a cluster using Azure VMs; we call this type of cluster unmanaged clusters. AKS, on the other hand, is a managed cluster. Since it’s managed, most of the cluster and core management tasks will be taken care of by the Azure platform. Using managed clusters offers a lot of freedom from complex configurations and tasks. The master node that controls the cluster will be managed by Azure, and you pay for only the number of nodes you add to the cluster. These nodes are responsible for hosting your applications. An open source container engine called Azure Container Service Engine (acs-engine) is used to build AKS.

0 Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

Terms of Use | About | Privacy Policy | Cookies | Accessibility Help | Contact