2017年11月25日土曜日

Container Linux Config

Container Linux の設定が coreos-cloudinit でなく "Container Linux Config" で行うようになったけど、自分の頭の中の切り替えも結構必要なようだ。

普段 Vultr で CoreOS を使ってるが、running な CoreOS の設定(コンテナじゃなくて CoreOS 自体の設定)を変更しなくちゃならんときは、/usr/share/oem/cloud-config.yml をいじれば何とかなる。しかし、GCE の CoreOS や最新の PXE のイメージで標準になってる "Container Linux Config" の Ignition は本当に起動時にだけ実行され(see: https://coreos.com/ignition/docs/latest/what-is-ignition.html#when-is-ignition-executed)るとのこと。じゃぁ running で設定を変更したいときはどうするんじゃと...

https://www.bountysource.com/issues/43393940-edit-user-in-cloud-config-yml-remains-the-old-one-why あたりを見る限りは、Ignition には ignition.json を変更するというユースケースはないとのこと。

おそらく CoreOS 自体(コンテナじゃなくて)を永続化させるってのが、既にコンセプトと違うんだろう。etcd ver.3 (etcd-member)からは rkt の別コンテナで動かすようになってるし、とにかくステートを持つものはコンテナとして起動させろってことなんだろう。

全然関係ないけど、Vultr でインスタンスを作る時に「CoreOS」という名前のままなのは、レガシィな cloudinit 使ってるからなのか? あ、さらに関係ないけど、Vultr で Container Linux を iPXE で起動しようとして失敗するのは、たいていリソースが足りないからのようだ。Container Linux の本家のドキュメントには initrd を広げるのに最低 2GB の RAM が必要ということだ。ケチって 1GB RAM にすると失敗する。ケチりたいときは iPXE でなく既に用意されている CoreOS で cloud-config.yml をちまちまいじるしかないかも。

0 件のコメント:

コメントを投稿