Run container-optimized clusters with Ocean and Bottlerocket OS

AWS is one of the primary providers for services that help users deploy and manage their containerized applications on the cloud. Since launching ECS in 2014 and EKS in 2017, AWS has learned a lot about running containers at scale and in production. AWS developed Bottlerocket OS, a new operating system for hosting containers. This OS was specifically designed to address gaps left by the ECS and EKS-optimized AMIs, which are based on operating systems that run traditional software applications. Using Bottlerocket, customers benefit from enhanced security, more consistency in environments, and efficiency in operations. 

For our AWS customers, Spot Ocean supports the Bottlerocket OS, and now we’re excited to announce that Spot by NetApp is an Bottlerocket OS Certified Provider. Spot Ocean customers can launch instances using the Bottlerocket OS, manage Bottlerocket OS nodes and run the Spot controller on top of a Bottlerocket OS machine. 

How does it work?

Bottlerocket is a free, open source, Linux-based operating system meant for hosting containers. It’s a slimmed-down OS that only includes what’s essential to run containers. This lean architecture helps to improve resource utilization and reduces the surface area that’s vulnerable to attack. It also enables automation of OS updates since this is done in a single step rather than package-by-package.

Bottlerocket OS

Spot Ocean runs seamlessly on top of Bottlerocket OS to automatically scale and manage nodes. Users can continue to leverage the cost optimization capabilities of Ocean that scale and provision spot instances, handle interruptions, and make efficient use of reserved instances. 

Using Bottlerocket OS and Ocean

It’s easy to start using Bottlerocket OS with your clusters running on Ocean or create new clusters running with Bottlerocket OS.

  1. Navigate to the Virtual Node Group tab in the Spot Ocean console. 
  2. To edit an existing VNG, click on the cluster name you want to update.
  3. In the configuration, update the image value to a Bottlerocket AMI ID, and the userdata script with the following script:
[settings]

  [settings.host-containers]

    [settings.host-containers.admin]

      # Bottlerocket Admin Contained
      enabled = false

  [settings.kubernetes]

    # Kubernetes Control Plane API Endpoint
   api-server = <API server endpoint>

    # Kubernetes Cluster CA Certificate
   cluster-certificate = <Certificate>

    # Kubernetes Cluster Name 
   cluster-name = <Cluster name>

    [settings.kubernetes.node-labels]
    "key" = "value"

Note: in order to update the default VNG you’ll have to perform those updates through the Ocean resource
 
bottlrocket os

4. Click save. 

5. Run a cluster roll

To learn more about Ocean and how you can get started with it, take a look at our documentation resources