LoginSignup
32
28

More than 5 years have passed since last update.

CoreOS を手動でアップデートする

Posted at

概要

CoreOS を自動アップデートを使わずに手動でアップデートする話。

CoreOS のアップデートの仕組み及び自動アップデートについては CoreOS の自動アップデートを理解する を参照

手動でアップデートする理由

2014/12/18 現在 CoreOS の自動アップデートはまだ不安定という印象なため。海外のサービスで CoreOS を導入しているところでも、自分の環境でも自動アップデート後に etcd のクラスタリング(fleet もダイレクトに影響を受ける)に問題が生じるケースが発生しておりアップデート戦略は off にしておくのが無難な気がしている。
ただ、「CoreOS の自動アップデートを理解する」の「背景」 にも書いた通り、継続的にアップデートしていくうえで自動アップデートは理想的なので引き続き自動アップデートの導入を試みていきたい。

手動でアップデートする

コンテキストとしては

  • 現在のバージョンは stable channel の最新の 494.5.0
  • 522.2.0 を使いたい
  • 522.2.0 は alpha channel の最新バージョン
  • アップデート戦略は off (=手動アップデート)
# 現在のバージョンを確認
core@core-01 ~ $ cat /etc/os-release
NAME=CoreOS
ID=coreos
VERSION=494.5.0
VERSION_ID=494.5.0
BUILD_ID=
PRETTY_NAME="CoreOS 494.5.0"
ANSI_COLOR="1;32"
HOME_URL="https://coreos.com/"

# アップデート戦略の設定
core@core-01 ~ $ cat /etc/coreos/update.conf
GROUP=alpha
REBOOT_STRATEGY=off

# 手動でアップデート
core@core-01 ~ $ sudo update_engine_client -update
[1218/111512:INFO:update_engine_client.cc(245)] Initiating update check and install.
[1218/111512:INFO:update_engine_client.cc(250)] Waiting for update to complete.
LAST_CHECKED_TIME=1418868913
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_UPDATE_AVAILABLE
NEW_VERSION=0.0.0.0
NEW_SIZE=106685362
LAST_CHECKED_TIME=1418868913
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_UPDATE_AVAILABLE
NEW_VERSION=0.0.0.0
NEW_SIZE=106685362
LAST_CHECKED_TIME=1418868913
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_UPDATE_AVAILABLE
NEW_VERSION=0.0.0.0
NEW_SIZE=106685362
LAST_CHECKED_TIME=1418868913
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_UPDATE_AVAILABLE
NEW_VERSION=0.0.0.0
NEW_SIZE=106685362
LAST_CHECKED_TIME=1418868913
PROGRESS=0.141913
CURRENT_OP=UPDATE_STATUS_DOWNLOADING
NEW_VERSION=0.0.0.0
NEW_SIZE=106685362
LAST_CHECKED_TIME=1418868913
PROGRESS=0.456123
CURRENT_OP=UPDATE_STATUS_DOWNLOADING
NEW_VERSION=0.0.0.0
NEW_SIZE=106685362
LAST_CHECKED_TIME=1418868913
PROGRESS=0.668975
CURRENT_OP=UPDATE_STATUS_DOWNLOADING
NEW_VERSION=0.0.0.0
NEW_SIZE=106685362
LAST_CHECKED_TIME=1418868913
PROGRESS=0.891964
CURRENT_OP=UPDATE_STATUS_DOWNLOADING
NEW_VERSION=0.0.0.0
NEW_SIZE=106685362
LAST_CHECKED_TIME=1418868913
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_FINALIZING
NEW_VERSION=0.0.0.0
NEW_SIZE=106685362
LAST_CHECKED_TIME=1418868913
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_FINALIZING
NEW_VERSION=0.0.0.0
NEW_SIZE=106685362
LAST_CHECKED_TIME=1418868913
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_FINALIZING
NEW_VERSION=0.0.0.0
NEW_SIZE=106685362
LAST_CHECKED_TIME=1418868913
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_FINALIZING
NEW_VERSION=0.0.0.0
NEW_SIZE=106685362
LAST_CHECKED_TIME=1418868913
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_UPDATED_NEED_REBOOT
NEW_VERSION=0.0.0.0
NEW_SIZE=106685362
[1218/111617:INFO:update_engine_client.cc(193)] Update succeeded -- reboot needed.

# リブート
core@core-01 ~ $ sudo reboot

# アップデート後のバージョンを確認
core@ip-10-0-0-26 ~ $ cat /etc/os-release
NAME=CoreOS
ID=coreos
VERSION=522.2.0
VERSION_ID=522.2.0
BUILD_ID=
PRETTY_NAME="CoreOS 522.2.0"
ANSI_COLOR="1;32"
HOME_URL="https://coreos.com/"
BUG_REPORT_URL="https://github.com/coreos/bugs/issues"
  • systemd を使って docker コンテナを立ち上げていれば リブート後もコンテナは立ち上がり直す。
  • 作業にかかる時間も 5 分もかからないくらい

メモと感想

特定のバージョンにしたい場合はどうすればいいんだろう?

TODO

REF

32
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
28