
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.