Introduction
Anthos is a platform that allows users to run applications on-premise in Google Cloud and other providers such as Amazon Web Services (AWS) and Microsoft Azure. It is a modern application management platform that provides consistent development and operations facilities for cloud and on-premises environments. Anthos is an umbrella covering multiple services and is marked differently from any other cloud service. The primary computing environment for Anthos is Anthos clusters, which extend GKE (Google Kubernetes Engine) on Google Cloud and on-premises, or multi-cloud installations in the environments that deploy the application.
Anthos Clusters
Anthos clusters offer a unified way to work with Kubernetes clusters as part of Anthos. It helps provide a consistent, and secure infrastructure cluster management with Anthos on Google Cloud, hybrid cloud, or multiple public clouds. Anthos clusters on-premises and on other public clouds are based on GKE. With attached clusters to Anthos, users can utilise some features on their existing systems even without a full migration to Anthos clusters. Attaching clusters helps users view them in the Google Cloud console along with GKE and Anthos clusters.
Anthos Cluster Environments are listed as follows.
-
Anthos on Google Cloud - Google Cloud hosts the control plane, and the Kubernetes API server is the only component accessible to customers. GKE manages the node components in the customer's project using instances in Compute Engine.
-
Anthos on-prem - All components are hosted in the customer's on-premises virtualisation environment.
-
Anthos clusters on AWS - All components are hosted in the customer's AWS environment.
- Anthos on Azure - All components are hosted in the customer's Azure environment.
Google Kubernetes Engine
GKE provides an environment for deploying, managing, and scaling containerised applications using Google infrastructure. It consists of multiple machines grouped to form a cluster. GKE clusters are powered by Kubernetes, an open-source cluster management system. Kubernetes provides ways to interact with a cluster. Kubernetes commands and resources can deploy and manage applications, perform administration tasks and set policies for deployed workloads.
Using a GKE cluster provides additional features such as load-balancing for Compute Engine instances, Node pools and automatic scaling of the cluster's node instance count. It also provides automatic upgrades for the cluster's node software and node auto-repair to maintain health and availability.
GKE clusters can operate in two modes - Autopilot and Standard
Autopilot mode manages the entire cluster and node infrastructure for the user. It provides a hands-off Kubernetes experience and allows users to focus on workloads required to run their applications. Autopilot clusters are pre-configured with a configuration that is ready for production workloads.
Standard mode provides node configuration flexibility and complete control over managing clusters and node infrastructure. Users can determine the configurations needed for their production workloads and pay only for the nodes they use.
On Bare Metal
Anthos clusters on bare metal, a Google Distributed Cloud Virtual (GDC Virtual) component, brings Google Kubernetes Engine (GKE) to on-premises data centres. This allows users to create, manage, and upgrade Kubernetes clusters on their hardware in a data centre. Let us see the advantages of Anthos clusters on bare metal.
-
Anthos clusters on bare metal help deploy applications directly on hardware infrastructure to deliver the best performance and flexibility.
-
Anthos clusters on bare metal provide advanced monitoring of the health and performance of the environment to scale up applications while maintaining reliability.
-
Networks can be optimised for low latency for enterprise or network edge applications.
-
Anthos clusters on bare metal support multiple control nodes in a cluster, so if a master node fails, it is still possible to administer the environment.
- Anthos clusters on bare metal can also work with lightweight, secure connections to Google APIs and allows managing clusters and applications from a central place with Connect and Cloud Monitoring.
AWS
Anthos clusters on AWS help manage GKE clusters running on AWS infrastructure through the Anthos Multi-Cloud API. It allows users to manage GKE clusters on Google Cloud and AWS from the Google Cloud console. While creating a cluster with Anthos clusters on AWS, Google creates the required AWS resources and brings up a cluster on behalf of the user. The workloads can be deployed with gcloud and kubectl command-line tools.
While setting up Anthos clusters on AWS, an AWS IAM role in the AWS account is also created with the required permissions. Anthos clusters on AWS provisions clusters via private subnets inside Google Cloud Virtual Private Cloud. Each cluster consists of a Control plane and Node pool.
The control plane uses a high-availability architecture with three replicas.Each replica runs Kubernetes components like kube-apiserver, kube-controller-manager and kube-scheduler. Each instance stores data in an EBS volume. It uses a network interface to communicate with other instances.
A node pool is a group of Kubernetes worker nodes with a similar configuration, instance type, disk configuration, and instance profile. All nodes of a node pool run on the same subnet. Multiple node pools can be set across different subnets in the same Google Cloud region for high availability.
Azure
Anthos Clusters on Azure are similar to Anthos Clusters on AWS. Anthos clusters on Azure help provision, operate and scale Kubernetes clusters with an Azure account. It uses Azure APIs to provision the resources required by a cluster, including virtual machines, managed disks, network security groups, and load balancers.
While setting up Anthos clusters on Azure, we create an Azure Active Directory (Azure AD) application and service principal with the required permissions. Anthos clusters on Azure provisions clusters using private subnets inside the Azure Virtual Private Cloud. Like AWS, each cluster consists of a control plane and node pools.