Containers on Arm in Oracle Cloud Infrastructure

September 15, 2023 | 4 minute read
Govinnd Cherukat
Senior Product Manager
Greg Verstraeten
Senior Principal Product Manager
Rishikesh Palve
Principal Product Manager
Text Size 100%:

Oracle Cloud Infrastructure (OCI) offers Arm-based processors to run cloud native and general purpose workloads with significant price-performance benefits. Currently, Oracle Container Engine for Kubernetes (OKE) supports the ability to run containerized applications on Arm using managed nodes.

Today, we're excited to share that you can now deploy and oversee any containerized task running on Arm architecture within OCI. This capability extends across OCI Container Instances, OCI Functions, and OKE, encompassing virtual nodes and managed nodes.

Reduce costs by running containers on Arm in OCI

Powered by Ampere Altra processors, the OCI Ampere A1 shape allows you to run containers with Arm cores at only $0.01 per core per hour and $0.0015 per GB of RAM per hour. For benchmarks, when running x264 video encoding workloads on OCI Ampere A1, Oracle saw up to a 10 percent performance increase and up to a 22 percent price-performance benefit compared to x86-based systems. For NGINX reverse proxy workloads on OCI Ampere A1, Oracle saw up to a 46 percent performance increase and up to a 62 percent price-performance benefit compared to x86-based systems.

You get the first 3,000 core-hours and 18,000 GB-hours free per month for instances created with Ampere A1 shape. This free-tier usage is shared across bare metal, virtual machine (VM), and Container Instances.

Run Container Instances on Arm

OCI Containers Instances is a serverless compute service that enables you to run containers instantly without managing any servers or VMs. It’s suitable for containerized applications that don’t require Kubernetes. A new flexible shape powered by Ampere A1 shape, CI.Standard.A1.Flex, is now available with Container Instances. It enables you to run containers on Arm-based processors. Get started with the following steps:

  1. Log in to your OCI account. If you don’t have an Oracle Cloud account yet, request a free trial.
  2. Open the navigation menu. Under Developer Services, go to Containers & Artifacts and click Container Instances.
  3. Click Create Container Instance, go to the Shape selection, and select the CI.Standard.A1.Flex shape.
  4. When configuring containers to run on the container instance, provide container images built for Arm architecture or multiple architectures to run these containers on Arm processors.

The flexible shape enables you to customize the number of cores and amount of memory. You can choose to allocate up to 76 cores with extended OCPUs and up to 488 GB of memory to each container instance to run even the most demanding workloads.

A screenshot of the Browse All Shapes window in the Oracle Cloud Console, showing the available shapes, with the Ampere Arm-based processor highlighted.

 

Run OCI Functions on Arm

OCI Functions is a serverless functions-as-a-service (FaaS) platform in OCI. Functions seamlessly integrate with other OCI services, providing a complete serverless platform for building event-driven applications, and provision the compute required to run functions the customers deploy based on demand.
 

You can now run OCI functions powered by Ampere A1 using OCI interfaces, including Fn CLI, OCI CLI, and OCI software developer kits (SDKs). While deploying a function, you can specify the shape parameter on which you want to run the function. You can limit the function to running on a single architecture, such as Arm or enable the function to run on multiple architectures, such as both Arm and x86.

Use the following steps to specify the processor architecture on which to run a function:

  1. In the navigation menu, under Developer Services, go to Functions and click Create Application.
  2. Select a shape for the application that supports the architecture on which you want to run the function.

A screenshot of the Create Application screen with the Shape menu expanded and the GENERIC_X86_ARM shape highlighted.

 

  1. Create functions by building an image that contains the necessary dependencies for the architecture on which you want to run the function and deploy it.
    This method uses the Fn CLI to build a multiple architecture image based on the application shape parameter and upload the manifest to OCIR. The Functions image architecture must be compatible with the applications shape definition. Run the following command:
fn -v deploy --app app_multiarch
  1. You can invoke your function using OCI, Fn or trigger integrated with Functions (e.g., API Gateway, Events).
fn invoke func_multiarch

Run Kubernetes pods on Arm

OKE lets you run containers on Arm processors in Kubernetes clusters using OKE with managed nodes. Now, you can also run containers on Arm using OKE virtual nodes. OKE virtual nodes eliminate the operational overhead of managing, scaling, upgrading, and troubleshooting worker nodes' infrastructure.

  1. In the navigation menu, under Developer Services, go to Kubernetes Clusters (OKE) and click Create Cluster.
  2. In the Create Cluster window, select Custom Create and click Launch Workflow. Set up the cluster configuration as a part of the Cluster Create and Network Setup.
  3. In the Node Pools section, select Virtual and pick the pod shape within the Virtual node count and Pod shape sections.

You can create virtual nodes with the pod shape set to Pod.Standard.A1.Flex. The pods scheduled on those virtual nodes run on Arm processors, and you benefit from the price-performance that Arm processors provide.

 A screenshot of the Node count and Pod shape menus on the creation screen.

Want to know more?

 

 

Govinnd Cherukat

Senior Product Manager

Greg Verstraeten

Senior Principal Product Manager

Rishikesh Palve

Principal Product Manager

OCI Serverless Containers, Kubernetes, and Functions services.


Previous Post

Oracle and Microsoft expand partnership to deliver Oracle database services in Azure

Karan Batta | 4 min read

Next Post


Announcing log metadata optimization and service log support expansion in OCI Logging

Harsh Keswani | 3 min read