Linux for Massive Server Deployments
Объединение однородных элементов, которое может рассматриваться как единое целое...
Mozzila sysadmin
locksmith is a reboot manager
Alpha->Betta->Stable
#cloud-config
coreos:
units:
- name: etcd.service
command: start
users:
- name: core
passwd: $1$allJZawX$00S5T756I5PGdQga5qhqv1
write_files:
- path: /etc/resolv.conf
content: |
nameserver 192.0.2.2
nameserver 192.0.2.3
coreos-cloudinit -validate -from-file=cfg.yaml
distributed, consistent key value store
etcdctl set /foo/bar "Hello world" --ttl 60
etcdctl get /foo/bar
etcdctl watch /foo/bar --forever
etcdctl exec-watch /foo/bar -- sh -c "env | grep ETCD"
etcdctl ls --recursive -p
etcdctl rm /path/to/dir --recursive
curl -L http://etcd.com:4001/v2/keys/mykey -XPUT -d value="this is awesome"
Leader election
Log eplication
Safety
systemd + etcd
distributed init system
[Unit]
Description=My Advanced Service
After=etcd.service
After=docker.service
[Service]
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill apache1
ExecStartPre=-/usr/bin/docker rm apache1
ExecStartPre=/usr/bin/docker pull coreos/apache
ExecStart=/usr/bin/docker run --name apache1 -p 80:80 coreos/apache /usr/sbin/apache2ctl -D FOREGROUND
ExecStartPost=/usr/bin/etcdctl set /domains/example.com/10.10.10.123:8081 running
ExecStop=/usr/bin/docker stop apache1
ExecStopPost=/usr/bin/etcdctl rm /domains/example.com/10.10.10.123:8081
[Install]
WantedBy=multi-user.target
alias f=fleetctl
f list-machines
f list-units
f list-unit-files
f submit/destroy examples/hello.service
f cat hello.service
f load/unload hello.service
f start/stop goodbye.service
f journal hello.service
MachineID, MachineOf, MachineMetadata, Conflicts, Global
install
#cloud-conf
...
coreos:
units:
- name: flanneld.service
drop-ins:
- name: 50-network-config.conf
content: |
[Service]
ExecStartPre=/usr/bin/etcdctl set /coreos.com/network/config \
'{ "Network": "10.1.0.0/16" }'
command: start
kubernetes.io
deis.io