This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
cloud:coreos [2017/02/10 17:58] frank |
cloud:coreos [2017/02/21 10:03] (current) frank |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | === System === | + | ==== 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 === | ||
| - | automatic software updates | ||
| - | version: Alpha, Beta, Staable | ||
| Line 38: | Line 57: | ||
| === locksmith === | === locksmith === | ||
| - | auto reboot based on update policy after auto updates | + | - 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 | /etc/coreos/update.conf | ||
| Line 55: | 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. | ||
| - | === Kubernetes === | ||
| - | - container management software | ||
| === flannel === | === flannel === | ||