Présentation CoreOS de @CattGr est mise à disposition selon les termes de la licence Creative Commons Attribution 4.0 International
CoreOS-cloudinit permet à un administrateur de personnaliser ses machines CoreOS en fournissant un document Cloud Config au format YAML.
#cloud-config coreos: units: - name: etcd2.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
Nous avons mis en place un serveur ipxe qui fournit à chaque serveur CoreOS son image de boot et son fichier cloud-init.
Le serveur obtient ces informations via le serveur dhcp.
host coreos1 { hardware ethernet 1e:3f:4e:53:1f:52; next-server 10.0.0.11; fixed-address 10.0.0.21; server-name "coreos1.mondomaine"; if exists user-class and option user-class = "iPXE" { filename "http://10.0.0.11:4777/?profile=production"; } else { filename "undionly.kpxe"; } }
Les images sont téléchargées sur le site de CoreOS. Une version de CoreOS est spécifiée pour chaque profil.
# cat production.json { "cloud_config": "production", "console": ["tty0", "tty1"], "coreos_autologin": "tty1", "rootfstype": "btrfs", "root": "LABEL=ROOT", "version": "681.0.0" }
Stable | Beta | Alpha |
---|---|---|
Le canal Stable est utilisable en production. Chaque nouvelle version livrée a été longuement testée. | Dans le canal Beta, on retrouve les versions Alpha ayant une certaine stablilité. | Le canal Alpha suit de près le travail de développement en cours et est mis à jour fréquemment. Les dernières versions de docker, etcd et fleet seront disponibles pour les tests. |
Pour un déploiement large (supérieur à 10 nœuds) il est conseillé d'avoir un nombre de bases etcd limité, afin de ne pas passer trop de temps à obtenir le corum.
Membre(s) Actif(s) | Majorité | Tolérance de panne |
---|---|---|
1 membre | 1 membre | Aucune |
3 membres | 2 membres | 1 membre |
4 membres | 3 membres | 1 membre |
5 membres | 3 membres | 2 membres |
6 membres | 4 membres | 2 membres |
7 membres | 4 membres | 3 membres |
8 membres | 5 membres | 3 membres |
9 membres | 5 membres | 4 membres |
Fleet permet de gérer, sur l'ensemble d'un cluster CoreOS, les fichiers systemd.
La directive systemd [X-Fleet] permet d'étendre le fonctionnement des scripts systemd.
Pour que fleet fonctionne, la base etcd doit être accessible en lecture/écriture.
core@coreos1 ~ $ fleetctl list-machines MACHINE IP METADATA 32a89c4b... 10.0.0.21 location=dsi,plateform=kvm,version=681.0.0 9b2fc7d5... 10.0.0.22 location=dsi,plateform=kvm,version=681.0.0 ff9f347b... 10.0.0.23 location=dsi,plateform=kvm,version=681.0.0 c93c01c0... 10.0.0.24 location=dsi,plateform=kvm,version=681.0.0
[Unit] Description=Google Container Advisor Requires=docker.socket After=docker.socket [Service] ExecStartPre=/bin/sh -c "docker history google/cadvisor:latest >/dev/null || docker pull google/cadvisor:latest" ExecStart=/usr/bin/docker run --rm --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=8080:8080 --name=cadvisor google/cadvisor:latest Restart=always RestartSec=20s [Install] WantedBy=multi-user.target [X-Fleet] Global=true
core@coreos1 ~ $ fleetctl load cadvisor.service Triggered global unit cadvisor.service load core@coreos1 ~ $ fleetctl list-unit-files UNIT HASH DSTATE STATE TARGET cadvisor.service 85f57eb loaded - global core@coreos1 ~ $ fleetctl start cadvisor.service Triggered global unit cadvisor.service start core@coreos1 ~ $ fleetctl list-units UNIT MACHINE ACTIVE SUB cadvisor.service 32a89c4b.../10.0.0.21 active running cadvisor.service 9b2fc7d5.../10.0.0.22 active running cadvisor.service c93c01c0.../10.0.0.24 active running cadvisor.service ff9f347b.../10.0.0.23 active running core@coreos1 ~ $ fleetctl stop cadvisor.service Triggered global unit cadvisor.service stop
12 recommandations pour un déploiement sans soucis.
|
|
Un système distribué basé sur des micro-services qui communiquent via des files de messages.