Bottlerocket
#Kubernetes #AWS
Bottlerocket が面倒なことをしなくてもローカルで動きそうになっている
bottlerocket/PROVISIONING-METAL.md at develop · bottlerocket-os/bottlerocket
しかし、Bottlerocket をセルフマネージド型の Kubernetes クラスターや、IAM 認証が選択できない AWS 外のクラスター (セルフマネージド型、または EKS Anywhere を使用)で使用したい場合もあるでしょう。このような状況では、Bottlerocket API を 使用して、settings.kubernetes.authentication-mode を aws から tls に変更することができます。これにより Bottlerocket は、AWS 認証の代わりにブートストラップトークンを使用するようになります。
この変更を行う際には、settings.kubernetes.bootstrap-token 変数に値を指定する必要があることに注意してください。ブートストラップトークンについてはこちらをご覧ください。
Bottlerocket、1 年間のあゆみ | Amazon Web Services ブログ
The Bottlerocket update operator (or, for short, Brupop) is a Kubernetes operator that coordinates Bottlerocket updates on hosts in a cluster. When installed, the Bottlerocket update operator starts a controller deployment on one node, an agent daemon set on every Bottlerocket node, and an Update Operator API Server deployment. The controller orchestrates updates across your cluster, while the agent is responsible for periodically querying for Bottlerocket updates, draining the node, and performing the update when asked by the controller. The agent performs all cluster object mutation operations via the API Server, which performs additional authorization using the Kubernetes TokenReview API -- ensuring that any request associated with a node is being made by the agent pod running on that node. Further, cert-manager is required in order for the API server to use a CA certificate to communicate over SSL with the agents. Updates to Bottlerocket are rolled out in waves to reduce the impact of issues; the nodes in your cluster may not all see updates at the same time.
For a deep dive on installing Brupop, how it works, and its integration with Bottlerocket, check out this design deep dive document!
bottlerocket-update-operator/README.md at develop · bottlerocket-os/bottlerocket-update-operator
もし metal variant が機能不足だとしても custom variant を作るための仕組みも整っていそう
Enable out-of-tree Bottlerocket variants · Issue #2669 · bottlerocket-os/bottlerocket