User Tools

Site Tools


cloud:coreos

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
cloud:coreos [2017/01/23 11:26]
frank created
cloud:coreos [2017/02/21 10:03] (current)
frank
Line 1: Line 1:
 +==== Overwiew ====
 +  * CoreOS Linux was renamed to Container Linux in 2016. Under Apache 2.0 license. 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 include rkt providing support for appc. Now rkt can support both appc and OCI.
 +  * 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 ==== ==== components ====
  
 === kernel === === kernel ===
 automatic kernel updates automatic kernel updates
 +
 +=== file system ===
 +ext4 + overlayfs
 +
  
 === systemd === === systemd ===
  
 === etcd2 === === etcd2 ===
 +
 etcd is key-value store for the most critical data of distributed systems. 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 is a distributed key-value store that provides a relieble way to store data across a cluster of machines.
 +
 +etcd uses[[ https://​raft.github.io/​| Raft consensus Algorithm]]. Kubernetes uses etcd for data storage.
 +
  
   - automatic kernel updates. ​ contain linux uses etcd to store semaphore values to make sure only subset of cluster are rebooting at any given time.   - automatic kernel updates. ​ contain linux uses etcd to store semaphore values to make sure only subset of cluster are rebooting at any given time.
Line 14: Line 49:
  
 In container linux, it is systemd service daemon. In container linux, it is systemd service daemon.
 +
 +=== etcd operator ===
 +
 +  - single command line
 +  - configure and manager the complexities of etcd using simple declarative configuration that will create, configure and manage etcd clusters.
 +  - 
 +
 +=== locksmith ===
 +  - reboot manager
 +  - auto reboot based on update policy after auto updates. ensure a certain part of the cluster reboots once updates are applied.
 +  - 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>​ === === <​del>​fleet</​del>​ ===
Line 24: Line 76:
  
   - not a background daemon   - not a background daemon
-  - +  - support both appc(App Container) and OCI(Open Container Initiative) which are container image format and runtime specification.
  
 === dockerd and containerd === === dockerd and containerd ===
 +not owned by coreos.
 +
 +Since 1.11, docker is split into containerd, docker daemon, runC.
 +
 +containerd: daemon, manage docker runtime by runC.  provide gRPC interface for dockerd, ​ uses runC tor run container(via containerd-shim)
 +
 +dockerd: daemon,
 +
 +runC: implementation for OCI.
 +
 +
 +=== flannel ===
 +virtual network that gives a subnet to each host for use with container runtimes.
  
-=== Kubernetes ​=== +=== ignition ​=== 
--- container management software+provisioning utility designed specifically fore container linux. 
 +  ​most basic level, it is a tool for manipulating disks during early boot. 
 +  ​only runs onece
  
 +=== Clair ===
 +project for the static analysis of valnerabilities in appc and docker containers.
  
cloud/coreos.1485199615.txt.gz · Last modified: 2017/01/23 11:26 by frank