Download - CoreOS @ summer meetup in Utrecht
![Page 1: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/1.jpg)
Timo Derstappen@teemow
![Page 2: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/2.jpg)
● Simple Service Orchestration● Based in Cologne, Germany● Built on top of CoreOS
http://giantswarm.io
Giant Swarm
![Page 3: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/3.jpg)
● Minimal OS to host your containers● Automatic Updates● Cluster Management● Service Discovery
![Page 4: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/4.jpg)
CoreOS 101
● Minimal Gentoo● PXE, OpenStack, AWS, GCE, Vagrant● Systemd, btrfs● Read-only rootfs (writable overlay)
![Page 5: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/5.jpg)
CoreOS own tools
● Etcd● Fleet● Locksmith● Cloud-config
github.com/coreos
![Page 6: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/6.jpg)
Etcd
● Highly available K/V store● Basis for
○ Configuration management○ Service Discovery
● Raft consensus algorithm● REST Interface
![Page 7: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/7.jpg)
Discovery API
$ curl https://discovery.etcd.io/newhttps://discovery.etcd.io/463c1435f9f63c952e0899b1f459c0fe
![Page 8: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/8.jpg)
Cloud Config
● Initialization of your instances● Configure etcd, fleet, locksmith
![Page 9: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/9.jpg)
Configure your cluster#cloud-config
coreos:
etcd:
discovery: https://discovery.etcd.io/<token>
addr: $private_ipv4:4001
peer-addr: $private_ipv4:7001
![Page 10: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/10.jpg)
Locksmith
● Reboot strategies for CoreOS updates● Uses etcd for distributed locks
![Page 11: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/11.jpg)
Fleet
● Fleet is systemd for the cluster● Uses etcd● CLI and API to start your containers
![Page 12: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/12.jpg)
Fleet Scheduler
● Simple (eg. based on Metadata)● But resolves service dependencies!● More to come (eg. based on available
resources)
![Page 13: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/13.jpg)
Unit file[Unit]Description=A Redis Server[Service]TimeoutStartSec=0EnvironmentFile=/etc/environmentEnvironment="IMAGE=teemow/redis"ExecStartPre=/usr/bin/docker pull $IMAGEExecStart=/bin/bash -c "exec /usr/bin/docker run --rm -p $COREOS_PRIVATE_IPV4::6379 --name %n $IMAGE"ExecStop=/usr/bin/docker stop %n
![Page 14: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/14.jpg)
Launch a service# startfleetctl start redis.service# statusfleetctl list-unitsfleetctl status redis.servicefleetctl journal redis.service# stopfleetctl stop redis.servicefleetctl destroy redis.service
![Page 15: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/15.jpg)
Release it!
● Load Balancer● App● Database
![Page 16: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/16.jpg)
Sidekick
● Keep configuration out of your app
![Page 17: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/17.jpg)
Ambassador
● Reverse proxy for your service
● Keep service discovery out of your app
![Page 18: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/18.jpg)
CoreOS
● Great foundation to create flexible distributed infrastructures
● Unix philosophy
![Page 19: CoreOS @ summer meetup in Utrecht](https://reader036.vdocument.in/reader036/viewer/2022081907/54b6b7894a79594a538b45ce/html5/thumbnails/19.jpg)
Timo Derstappen@teemow
http://giantswarm.io
Thanks for listening!