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 === |