EN

WAKE UP #09 – Stop throwing your money away!

Discover how to run workloads on ARM64 with efficiency and high performance across major cloud providers. Compare AWS Graviton, Google Tau T2A, Microsoft Azure, and Oracle OCI Ampere A1 products.

SRE/Kubernetes Admin

João Brito

Run your workload on ARM64 or part of it.

The ARM architecture is considered the future of cloud computing due to its advantages of low power consumption, low cost, high performance, and flexible licensing. Therefore, the major cloud providers, led by AWS (Amazon Web Services), GCP (Google Cloud Platform), Azure (Microsoft Azure), and OCI (Oracle Cloud Infrastructure), have successively launched servers based on this architecture. Let's explore the four main providers and their products.

With four years of development since 2018, AWS Graviton has entered its third generation of ARM servers. The first generation of processors, AWS Graviton1, was designed to deliver good general performance, focusing on light and general-purpose workloads. AWS Graviton2, the second generation of Graviton, was launched in 2019, featuring a series of significant improvements over the previous generation. They are designed to handle a wide variety of workloads, including general-purpose, compute-optimized, memory-optimized, storage-optimized, and accelerated computing. AWS Graviton3, the third generation of Graviton, instances M7g, C7g, and R7g, is the latest in the family. These processors are even more powerful and advanced compared to previous generations. Graviton3 delivers up to 25% better compute performance compared to Graviton2. In addition, Graviton3 offers support for DDR5 memory, which provides 50% more memory bandwidth compared to DDR4.

vCPUMemory (GIB)ProcessorPricem7g.xlarge416AWS Graviton3$0.1632 / hourm6g.xlarge416AWS Graviton2$0.1540 / hourm5.xlarge416Intel Xeon$0.1920 / hour

The option offered by Google Cloud Platform (GCP) is the Tau T2A, launched in July 2022. The Tau T2A comes in different pre-defined formats, allowing you to choose the suitable configuration for your specific workload.

vCPUMemory (GIB)ProcessorPricet2a-standard-4416Arm Ampere Altra$0.1540 / hourn2-standard-4416Intel Xeon$0.1942 / hour

 In April 2022, Microsoft announced its family of Azure virtual machines based on Arm processors. The new VM series includes general-purpose Dpsv5 and Dplsv5 VMs and memory-optimized Epsv5 VMs. 

vCPUMemory (GIB)ProcessorPriceD4ps v5416Arm Ampere Altra$0.1540 / hourD4 v5416Intel Xeon$0.1920 / hour

At the end of May 2021, Oracle launched its first Arm-based compute product: the OCI Ampere A1 Compute. The main model is the VM.Standard.A1.Flex (OCI A1), whose CPU core and memory can be flexibly configured.

vCPUMemory (GIB)ProcessorPriceVM.Standard.A1.Flex416Arm Ampere Altra$0.0632 / hourVM.Standard3.Flex416Intel Xeon$0.1040 / hour

*For each tenancy, the first 3,000 OCPU hours and 18,000 GB hours of memory per month are free when creating Ampere A1 Compute instances using the VM.Standard.A1.Flex (equivalent to 4 OCPUs and 24 GB of memory).

Adding an ARM64 node pool to an existing cluster can be a great option not only for cost reduction but also for performance improvements, and this task is simple. Just add a new node pool, which is no different from adding any other pool. The VM instance type you select for the node pool is what matters. Before attempting to deploy your node pool, it is recommended to check if the instance type is available in your region. After adding a new node pool to your cluster, you should apply taints to your existing node pools so that they only run the desired pods and prevent application pods from targeting nodes where your application might not be ready yet.

The final recommendation is to use a nodeSelector in the spec of the pods / deployments to be deployed. Therefore, setting a kubernetes.io/arch: "arm64" tag is a good idea to ensure that your ARM64 workload is not scheduled on non-ARM64 nodes or vice versa.

When choosing between ARM and Intel in the clouds, it is important to carefully consider the specific needs of your workload, as well as the costs and availability ofinstances offered by each cloud provider. When comparing vCPU and memory specs, it is evident that there is a significant difference in pricing, with the option of ARM instances offering potential savings. However, to make an informed decision, it is highly recommended to perform performance tests and carefully evaluate the costs associated with each option. This way, you can determine which is the best choice for your application, taking into account both performance and savings.

CONCLUSION

I hope this helps you prepare to leverage highly efficient and high-performance ARM-based node pools. As observed, deploying ARM64-based node pools is easy. What might not be easy is ensuring that your container image and all its base layers support multiple platforms. Therefore, you may need to adjust your Dockerfile as well as modify your container build process. From there, you must add a taint to the system node pool and a nodeSelector to your pod spec to ensure the application is scheduled on the appropriate nodes.


Newsletter Getup.

Atualizações sobre Kubernetes e Software Supply Chain Security todos os meses.

Operating Kubernetes in production for more than 13 years. With Quor, this experience extends to software supply chain security as well.