More Related Content
Similar to CoreOS @ summer meetup in Utrecht
Similar to CoreOS @ summer meetup in Utrecht (20)
CoreOS @ summer meetup in Utrecht
- 2. Giant Swarm
● Simple Service Orchestration
● Based in Cologne, Germany
● Built on top of CoreOS
http://giantswarm.io
- 3. ● Minimal OS to host your containers
● Automatic Updates
● Cluster Management
● Service Discovery
- 4. CoreOS 101
● Minimal Gentoo
● PXE, OpenStack, AWS, GCE, Vagrant
● Systemd, btrfs
● Read-only rootfs (writable overlay)
- 6. Etcd
● Highly available K/V store
● Basis for
○ Configuration management
○ Service Discovery
● Raft consensus algorithm
● REST Interface
- 7. Discovery API
$ curl https://discovery.etcd.io/new
https://discovery.etcd.
io/463c1435f9f63c952e0899b1f459c0fe
- 8. Cloud Config
● Initialization of your instances
● Configure etcd, fleet, locksmith
- 9. Configure your cluster
#cloud-config
coreos:
etcd:
discovery: https://discovery.etcd.io/<token>
addr: $private_ipv4:4001
peer-addr: $private_ipv4:7001
- 11. Fleet
● Fleet is systemd for the cluster
● Uses etcd
● CLI and API to start your containers
- 12. Fleet Scheduler
● Simple (eg. based on Metadata)
● But resolves service dependencies!
● More to come (eg. based on available
resources)
- 13. Unit file
[Unit]
Description=A Redis Server
[Service]
TimeoutStartSec=0
EnvironmentFile=/etc/environment
Environment="IMAGE=teemow/redis"
ExecStartPre=/usr/bin/docker pull $IMAGE
ExecStart=/bin/bash -c "exec /usr/bin/docker run --rm -p
$COREOS_PRIVATE_IPV4::6379 --name %n $IMAGE"
ExecStop=/usr/bin/docker stop %n
- 14. Launch a service
# start
fleetctl start redis.service
# status
fleetctl list-units
fleetctl status redis.service
fleetctl journal redis.service
# stop
fleetctl stop redis.service
fleetctl destroy redis.service
- 18. CoreOS
● Great foundation to create flexible distributed
infrastructures
● Unix philosophy