User Tools

Site Tools


cloud:coreos

This is an old revision of the document!


Overwiew

  • CoreOS Linux was renamed to Container Linux in 2016. coreos is still the company name. The commercial distribution is called Tectonic which integrates kubernetes.
  • Based on Gentoo Linux. use ebuild scripts from Gentoo Linux for compilation of its system components. use systemd for init.
  • Major system components such as etcd, rkt, flannel, ignition are all open source and written in GO language on github.
  • Installation/Deployment
    • support ISO install, PXE, and deployment on cloud platforms - AWS, GCE, Azure, openstack, Vagrant(vbox, qemu/kvm), vmware.
    • The cluster customization and first boot configuration(network configurations, user accounts, systemd units) is based on coreos-cloudinit(cloud-config like), coreos started new project named Ignition to replace it. Ignition is a provisioning utility, it can reads configuration from URL, network metadata service and hypervisor bridge and apply the configuration.
  • Updates
    • No package manager, automatic software updates
    • upgrade/version: Alpha, Beta, Stable
    • Update approach: Dual boot partitions. Updates are performed onto passive secondary partition, and becomes active upon a reboot or kexec. root partition and filesystem are automatically resized upon reboot, root partition is read-write, but /usr is mounted read-only.
  • container management: initially used docker, in 12/2014, coreos started to support rkt providing support for appc.
  • Cluster
    • etcd daemon runs across all cluster nodes. By using etcd, all configuration data are shared between cluster members. etcd is also key-value store.
    • fleet(deprecated) to deploy cluster-wide services and containers with redundancy, failover features.
  • Storage and network
    • ext4 + overlayfs for container image storage
    • flannel is virtual network that gives subnet to each host for container runtimes.

Appc and OCI

components

kernel

automatic kernel updates

file system

ext4 + overlayfs

systemd

etcd2

etcd is key-value store for the most critical data of distributed systems. etcd is a distributed key-value store that provides a relieble way to store data across a cluster of machines.

etcd uses Raft consensus Algorithm. Kubernetes uses etcd for data storage.

  1. automatic kernel updates. contain linux uses etcd to store semaphore values to make sure only subset of cluster are rebooting at any given time.
  2. Kubernets uses etcd to store cluster states for service discovery and cluster management, and it uses what API to monitor critical configuration changes.

In container linux, it is systemd service daemon.

etcd operator

  1. single command line
  2. configure and manager the complexities of etcd using simple declarative configuration that will create, configure and manage etcd clusters.

locksmith

  1. reboot manager
  2. auto reboot based on update policy after auto updates. ensure a certain part of the cluster reboots once updates are applied.
  3. runs as daemon on all cluster nodes.

/etc/coreos/update.conf GROUP=beta change to alpha, then restart update-engine systemctl restart update-engine

<del>fleet</del>

Deprecated by CoreOS. CoreOS instead recommends Kubernetes for clustering needs. fleet is a cluster-wide elaboration on systemd units. fleet supports basic scheduling of systemd unis across nodes in a cluster. For container orchestration system - Kubernetes. Low level cluster scheduler .

rkt

container manager for Linux clusters.

  1. not a background daemon
  2. support both appc(App Container) and OCI(Open Container Initiative) which are container image format and runtime specification.

dockerd and containerd

flannel

virtual network that gives a subnet to each host for use with container runtimes.

ignition

provisioning utility designed specifically fore container linux.

  1. most basic level, it is a tool for manipulating disks during early boot.
  2. only runs onece

Clair

project for the static analysis of valnerabilities in appc and docker containers.

cloud/coreos.1487116207.txt.gz · Last modified: 2017/02/14 15:50 by frank