All Projects → coreos → Container Linux Update Operator

coreos / Container Linux Update Operator

Licence: apache-2.0
A Kubernetes operator to manage updates of Container Linux by CoreOS

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Container Linux Update Operator

Sleepto
An alternative to traditional task schedulers
Stars: ✭ 98 (-52.88%)
Mutual labels:  systemd
Asus Fan Control
🌀 Fan control for ASUS devices running Linux.
Stars: ✭ 120 (-42.31%)
Mutual labels:  systemd
Netctl
Profile based systemd network management
Stars: ✭ 163 (-21.63%)
Mutual labels:  systemd
Log2ram
ramlog like for systemd (Put log into a ram folder)
Stars: ✭ 1,751 (+741.83%)
Mutual labels:  systemd
Terraform Aws Kubernetes
Install a Kubernetes cluster the CoreOS Tectonic Way: HA, self-hosted, RBAC, etcd Operator, and more
Stars: ✭ 118 (-43.27%)
Mutual labels:  coreos
Fluent Plugin Systemd
This is a fluentd input plugin. It reads logs from the systemd journal.
Stars: ✭ 124 (-40.38%)
Mutual labels:  systemd
Systemdlogger
Exports systemd logs to an external service, eg cloudwatch, elasticsearch
Stars: ✭ 91 (-56.25%)
Mutual labels:  systemd
Ansible Role Hardening
Ansible role to apply a security baseline. Systemd edition.
Stars: ✭ 188 (-9.62%)
Mutual labels:  systemd
Rust Etcd
An etcd client library for Rust.
Stars: ✭ 119 (-42.79%)
Mutual labels:  coreos
Pia Tools
Shell script to automate privateinternetaccess port forwarding and starting/stopping transmission when connected/disconnected and other stuff
Stars: ✭ 130 (-37.5%)
Mutual labels:  systemd
Mayu
Mayu helps you to provision a cluster of bare metal machines with CoreOS Container Linux
Stars: ✭ 108 (-48.08%)
Mutual labels:  coreos
Capistrano Mb
[unmaintained] Capistrano tasks for deploying Rails from scratch to Ubuntu 16.04 and 18.04
Stars: ✭ 117 (-43.75%)
Mutual labels:  systemd
Vishwakarma
Terraform modules to create a self-hosting Kubernetes cluster on opinionated Cloud Platform.
Stars: ✭ 127 (-38.94%)
Mutual labels:  coreos
Typhoon
Minimal and free Kubernetes distribution with Terraform
Stars: ✭ 1,397 (+571.63%)
Mutual labels:  coreos
Systemd Service Hardening
Basic guide to harden systemd services
Stars: ✭ 165 (-20.67%)
Mutual labels:  systemd
Selfhosted
rootless docker compose + traefik
Stars: ✭ 97 (-53.37%)
Mutual labels:  systemd
Go Systemd
Go bindings to systemd socket activation, journal, D-Bus, and unit files
Stars: ✭ 1,756 (+744.23%)
Mutual labels:  systemd
Kube Linode
🐳 Provision a Kubernetes/CoreOS cluster on Linode
Stars: ✭ 207 (-0.48%)
Mutual labels:  coreos
Procsd
Manage your application processes in production hassle-free like Heroku CLI with Procfile and Systemd
Stars: ✭ 181 (-12.98%)
Mutual labels:  systemd
Graceful
graceful reload golang http server, zero downtime, compatible with systemd, supervisor
Stars: ✭ 129 (-37.98%)
Mutual labels:  systemd

Container Linux Update Operator

Container Linux Update Operator is a node reboot controller for Kubernetes running Container Linux images. When a reboot is needed after updating the system via update_engine, the operator will drain the node before rebooting it.

Container Linux Update Operator fulfills the same purpose as locksmith, but has better integration with Kubernetes by explicitly marking a node as unschedulable and deleting pods on the node before rebooting.

Design

Original proposal

Container Linux Update Operator is divided into two parts: update-operator and update-agent.

update-agent runs as a DaemonSet on each node, waiting for a UPDATE_STATUS_UPDATED_NEED_REBOOT signal via D-Bus from update_engine. It will indicate via node annotations that it needs a reboot.

update-operator runs as a Deployment, watching changes to node annotations and reboots the nodes as needed. It coordinates the reboots of multiple nodes in the cluster, ensuring that not too many are rebooting at once.

Currently, update-operator only reboots one node at a time.

Requirements

  • A Kubernetes cluster (>= 1.6) running on Container Linux
  • The update-engine.service systemd unit on each machine should be unmasked, enabled and started in systemd
  • The locksmithd.service systemd unit on each machine should be masked and stopped in systemd

To unmask a service, run systemctl unmask <name>. To enable a service, run systemctl enable <name>. To start/stop a service, run systemctl start <name> or systemctl stop <name> respectively.

Usage

Create the update-operator deployment and update-agent daemonset.

kubectl apply -f examples/deploy -R

Test

To test that it is working, you can SSH to a node and trigger an update check by running update_engine_client -check_for_update or simulate a reboot is needed by running locksmithctl send-need-reboot.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].