Mettre a jour CoreOS manuellement

De Ikoula Wiki
Jump to navigation Jump to search

CoreOS intégre par défaut un système de mise à jour automatique (update_engine) qui planifie une vérification des mises à jours disponibles à interval régulier et les installe si il y en a effectivement.


Cependant il peut être utile de faire cette vérification et l'installation des mises à jours à disponibles manuellement. Nous allons voir ci-dessous comment mettre à jour une CoreOS stable.


Nous partons du principe que vous venez de déployer une instance CoreOS et que vous y êtes connecté en SSH en utilisateur "core".


On commence par vérifier la version de CoreOS actuelle :


core@Kube-MASTER ~ $ cat /etc/lsb-release
DISTRIB_ID=CoreOS
DISTRIB_RELEASE=633.1.0
DISTRIB_CODENAME="Red Dog"
DISTRIB_DESCRIPTION="CoreOS 633.1.0"


On lance l'installation des mises à jours (le retour a été volontairement tronqué):


core@Kube-MASTER ~ $ sudo update_engine_client -update
[0622/105739:INFO:update_engine_client.cc(245)] Initiating update check and install.
[0622/105739:INFO:update_engine_client.cc(250)] Waiting for update to complete.
LAST_CHECKED_TIME=1434963460
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_UPDATE_AVAILABLE
NEW_VERSION=0.0.0.0
NEW_SIZE=137131931
LAST_CHECKED_TIME=1434963460
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_UPDATE_AVAILABLE
...
NEW_VERSION=0.0.0.0
NEW_SIZE=137131931
LAST_CHECKED_TIME=1434963460
PROGRESS=0.993617
CURRENT_OP=UPDATE_STATUS_DOWNLOADING
NEW_VERSION=0.0.0.0
NEW_SIZE=137131931
LAST_CHECKED_TIME=1434963460
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_FINALIZING
NEW_VERSION=0.0.0.0
NEW_SIZE=137131931
LAST_CHECKED_TIME=1434963460
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_FINALIZING
NEW_VERSION=0.0.0.0
NEW_SIZE=137131931

Broadcast message from locksmithd at 2015-06-22 10:59:57.244742724 +0200 CEST:
System reboot in 5 minutes!

LAST_CHECKED_TIME=1434963460
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_UPDATED_NEED_REBOOT
NEW_VERSION=0.0.0.0
NEW_SIZE=137131931
[0622/105959:INFO:update_engine_client.cc(193)] Update succeeded -- reboot needed.
core@Kube-MASTER ~ $


A la fin de l'installation des mises à jour, nous sommes invités à redémarrer notre instance CoreOS soit immédiatement ("sudo reboot") soit automatiquement au bout de 5minutes.


Après redémarrage de notre instance CoreOS, nous vérifions la nouvelle version de celle-ci :


core@Kube-MASTER ~ $ cat /etc/lsb-release
DISTRIB_ID=CoreOS
DISTRIB_RELEASE=681.2.0
DISTRIB_CODENAME="Red Dog"
DISTRIB_DESCRIPTION="CoreOS 681.2.0"


Nous sommes maintenant dans la dernière version CoreOS stable (681.2.0 à l'heure de cette FAQ)


Les stratégies de mise à jour/redémarrage

CoreOS intégre 4 stratégies de redémarrage (reboot-strategy), ces stratégies contrôlent la façon dont le redémarrage se produit. Ces 4 stratégies sont :

best-effort
Le paramètre par défaut dans CoreOS. Ce paramètre détermine si la machine fait partie d'un cluster. Si ETCD est démarré la machine est supposé faire partie d'un cluster et donc utilise la stratégie "etcd-lock" sinon cela utilise simplement la stratégie "reboot"
etcd-Lock
Avec cette stratégie, chaque machine vérouille le redémarrage avant d'autoriser celui-ci. Cela permet à une mise à jour d'être appliqué rapidement à un cluster sans perdre le quorum dans Etcd. En effet le nombre de machine autorisées à redémarrer simultanément est configurage via la commande suivante (en adaptant le nombre maximum à votre contexte) :


core@CoreOSnode-3 ~ $ locksmithctl set-max 2
Old-Max: 1
Max: 2


reboot
Cette stratégie redémarre la machine aussitot que les mises à jours sont installées.
off
Cette stratégie fait que la machine attend une commande demandant explicitement le redémarrage après installation des mises à jour.