Bottlerocket is a Linux operating system built by AWS to host containers, especially for Kubernetes. This OS has many pros and features compared to other available general-purpose operating systems. In this article, I explain why we use Bottlerocket OS for our EKS clusters and what we achieve if using Bottlerocket on EKS clusters.
Bottlerocket is an open-source operating system built for containers.
It is specially optimized for running containers on Kubernetes.
Less overhead compared to general-purpose operating systems.
Fewer tools, libraries, and binaries == fewer security issues.
Support Kubernetes-based in-place upgrades using Kubernetes operators.
Fully integrated with AWS EKS platform.
Bottlerocket deployment procedure:
Deploy cluster worker nodes using managed node groups.
Deploy Bottlerocket Update Operator to automate the update process.
Investigate Bottlerocket Launch Template.
Step 1 – Deploy Bottlerocket worker nodes:
You can deploy Bottlerocket using all available deployment methods in EKS – fully managed node groups, node groups using custom launch templates and self-managed worker nodes. In this lab, we setup node groups using a fully managed method.
If you take a look at the EC2 Launch Template created for Bottlerocket worker nodes, you can see the User-data is entirely different from Amazon Linux one, and it’s because Bottlerocket use another syntax to initialize OS, and it’s wholly related to initiating Kubernetes kubelet component. Check the full settings here.
Bottlerocket is a 3-year-old OS for containers, and it’s too early to say it’s ready for production environments. I had some challenges with the Bottlerocket Update Operator as well. The AWS team and other companies working on Bottlerocket have a long way to go to make it ready for production-grade environments.
If you like this series of articles, please share them and write your thoughts as comments here. Your feedback encourages me to complete this massively planned program. Just share them and provide feedback. I’ll make you an AWS EKS black belt.