bottlerocket
kubernetes
bottlerocket | kubernetes | |
---|---|---|
42 | 727 | |
8,812 | 111,376 | |
0.9% | 0.5% | |
9.8 | 10.0 | |
9 days ago | 7 days ago | |
Rust | Go | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bottlerocket
-
Access for Infrastructure: SSH
There's not one answer to your question, but here's mine: kubelet and AWS SSM (which, to the best of my knowledge will work on non-AWS infra it just needs to be provided creds). Bottlerocket <https://github.com/bottlerocket-os/bottlerocket#setup> comes batteries included with both of those things, and is cheaply provisioned with (ahem) TOML user-data <https://github.com/bottlerocket-os/bottlerocket#description-...>
In that specific case, one can also have "systemd for normal people" via its support for static Pod definitions, so one can run containerized toys on boot even without being a formal member of a kubernetes cluster
-
Flatcar: OS Innovation with Systemd-Sysext
Don't overlook Bottlerocket, which despite coming out of AWS is not (AFAIK) AWS-centric: https://github.com/bottlerocket-os/bottlerocket#readme
It's also super handy for writing out static Pod manifests to have replace the brain-damaging Ignition as a less stupid alternative to cloud-init
-
Exploring cgroups v2 and MemoryQoS With EKS and Bottlerocket
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.
- Boletín AWS Open Source, Christmas Edition
- Bottlerocket OS
-
Bottlerocket – Minimal, immutable Linux OS with verified boot
Well, the link I provided references the Bottlerocket docs which explains the control container and the admin container and also how you can configure Bottlerocket via the User Data field when launching it as an AMI. All the information appears to be in the docs
https://github.com/bottlerocket-os/bottlerocket/blob/develop...
-
Introduction to Immutable Linux Systems
On the server-side, there's Bottlerocket OS [1] (Amazon). They use A/B partitions for upgrades, and the idea is that you just run containers for anything non-base. Boot containers are used to do custom configuration at boot, and host-container (or DaemonSet, if you run K8S) is used for long-running services.
[1] https://github.com/bottlerocket-os/bottlerocket
-
RedHat try to kill Centos, Rocky, Alma, Oracle Linux
Bottlerocket OS.
-
Wolfi: A community Linux OS designed for the container and cloud-native era
To add to the other excellent answers, I would recommend adding Bottlerocket to your reading list: https://github.com/bottlerocket-os/bottlerocket#readme
I'm also aware of (but haven't used) https://github.com/siderolabs/talos#readme
I just realized your question may have implied a desktop os, whereas Bottlerocket, Flatcar, and likely the others in this specific thread are server-side. I don't have much experience with trying to solve that problem on the desktop except for the horror-show that is snap
-
Compile Linux Kernel 6.x on AL2? 😎
https://github.com/bottlerocket-os/bottlerocket/issues/2855 soon for bottlerocket, maybe you’ll see Amazon Linux 2023 for eks nodes soon too?
kubernetes
-
The New Dev's Guide to Externalizing App Config
In containerized environments like Kubernetes or Amazon ECS, configuration is often injected as environment variables or mounted as files. Your app starts up with fresh values every time—no rebuilds needed.
-
Kubernetes and Cloud Native Associate (KCNA) Exam Guide
The Official Kuberenetes GitHub
-
The Double-Edged Sword of Microservices: Balancing Abstraction and Complexity
Using containerization: Containerization, such as Docker or Kubernetes, can help to simplify the deployment and management of microservices by providing a lightweight and portable way to package and run applications.
-
Lies we tell ourselves to keep using Golang
The implicit argument is that there's some irreducible non-negotiable project complexity in real-world software, and the explicit argument in the post is that you can either put it into the language/compiler or keep it in wetware.
The supporting argument in the text is that even simple things like downloading a file can get hairy very fast. Networks are complex, HTTP, IPv4/v6, DNS - it's always DNS! - filesystems, permissions, running out of space, computer runs out of battery, etc.
Probably a better argument would be to focus only on application logic (type system, error handling, syntactic-semantic ergonomics) and show that a complex piece of Go [like the k8s persistent volume controller] can be written in a nicer, more maintainable, safer way in Rust.
Of course not all Go code achieves Kubernetes-level complexity. And I think it makes sense to pick the right tool for the job, which is whatever the team/programmer is productive with. (And here productivity is measured based on how well the resulting code/software solves the business case. And basically if there's no need for Rust-level safety/quality/maintainability, or if there's an explicit need for Go-level cheaper hackability, then that's a great result business-wise.)
The important corollary of this is that business requirements tend to change, yet software has inertia and that's roughly how we ended up with insert famously bad software that got wildly popular unexpectedly (for example Windows, Macromedia/Adobe Flash and the infamous plugin, random low-level crap in appliances, and adjacent to that the Bluetooth stack that got rewritten in Rust for Android).
So - of course - for society it would be amazing if software would be better from the start. (Duh!)
https://github.com/kubernetes/kubernetes/blob/60c4c2b2521fb4...
- Dear friend, you have built a Kubernetes
-
How to level up your backend skills
Trends in DevOps and containerization on Kubernetes.
-
Why Clean Architecture Struggles in Golang and What Works Better
When designing a Go project, look to real-world examples like Kubernetes, Vault and the Golang Standards Project Layout. These showcase how powerful Go can be when the architecture embraces simplicity over rigid structure. Rather than trying to make Go fit a Clean Architecture mold, embrace an architecture that’s as straightforward and efficient as Go itself. This way, you’re building a codebase that’s not only idiomatic but one that’s easier to understand, maintain, and scale.
-
Speed Up Microservices Development with Dapr on AWS EK
For more on Dapr, check out Part 1 of our series. You can also learn more about Kubernetes, AWS EKS, and microservices architecture to deepen your understanding of the concepts discussed in this post.
-
Software Devs Picked These 2 Log Formats
Introduced by Heroku and picked up by Papertrail, logfmt became the go-to for fast, high-volume logs. Kubernetes, Docker, and microservices architectures swear by it. It’s efficient and straight to the point.
-
GitHub Repositories Every Developer Should Know: An In-Depth Guide
Access the repository for code and documentation.
What are some alternatives?
firecracker - Secure and fast microVMs for serverless computing.
Apache ZooKeeper - Apache ZooKeeper
Flatcar - Flatcar project repository for issue tracking, project documentation, etc.
bosun - Time Series Alerting Framework
nerdctl - contaiNERD CTL - Docker-compatible CLI for containerd, with support for Compose, Rootless, eStargz, OCIcrypt, IPFS, ...
Rundeck - Enable Self-Service Operations: Give specific users access to your existing tools, services, and scripts
lima - Linux virtual machines, with a focus on running containers
kine - Run Kubernetes on MySQL, Postgres, sqlite, dqlite, not etcd.
amazon-ecs-agent - Amazon Elastic Container Service Agent
BOSH - Cloud Foundry BOSH is an open source tool chain for release engineering, deployment and lifecycle management of large scale distributed services.
flatcar-linux-update-operator - A Kubernetes operator to manage updates of Flatcar Container Linux
Juju - Orchestration engine that enables the deployment, integration and lifecycle management of applications at any scale, on any infrastructure (Kubernetes or otherwise).