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.
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.
- Navigate to the Virtual Node Group tab in the Spot Ocean console.
- To edit an existing VNG, click on the cluster name you want to update.
- 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
4. Click save.
To learn more about Ocean and how you can get started with it, take a look at our documentation resources.