Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
containerd
Discontinued A daemon to control OCI container runtimes https://containerd.tools/ (by projectatomic)
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
According to this discussion - starting with Bottlerocket 1.13.0 (Mar 2023) new distributions will default to using Cgroups v2 interface for process organization and enforcing resource limits.
To easily spin up a cluster - use the cluster.yaml in the attached github repository:
This will create a cluster with one Bottlerocket node. It also configures ssh access to the nodes by running the Bottlerocket admin container.
Ok, now let's deploy a pod to our node. We'll do that by creating a deployment based on the following yaml spec. This deploys antweiss/busyhttp, that I forked from jpetazzo/busyhttp and added memory load and release endpoints to. You'll notice that the pod runs a container with Guaranteed QoS - i.e memory and CPU limits are equal to requests:
Ok, now let's deploy a pod to our node. We'll do that by creating a deployment based on the following yaml spec. This deploys antweiss/busyhttp, that I forked from jpetazzo/busyhttp and added memory load and release endpoints to. You'll notice that the pod runs a container with Guaranteed QoS - i.e memory and CPU limits are equal to requests:
Back inside the sheltie prompt let's explore the containers running on Bottlerocket. Bottlerocket OS is using containerd container runtime. In order to interact with it we'll need to use ctr.
0 is not the request we've defined. And that makes sense. Memory QoS has been in alpha since Kubernetes 1.22 (August 2021) and according to the KEP data was still in alpha as of 1.27.