AWSにCloud Foundryをインストールしました。Cloud FoundryはGardenによってコンテナが管理されますが、 GardenはプラガブルなAPIでバックエンドを変更することができます。
- Garden Linux
- Garden Windows
- Garden runC
の3つの実装があります。今は前世代Cloud Foundryで使用されている独自実装なWarden由来のGarden Linuxがデフォルトで使われていますが、 OCI(Open Container Initiative)で策定された標準のrunC(Dockerで使われているものと同じもの)を代わりに使うこともできます。(ちなみにGarden Windowsを使うとWindowsアプリを乗せられる)
変更は簡単で、Cloud Foundryのマニフェストのgarden-linux
をgarden-runc
に置換するだけ。
releases:
- {name: cf, version: latest}
- {name: diego, version: latest}
- {name: etcd, version: latest}
- {name: garden-runc, version: latest} # <- garden-linuxから変更
- {name: cflinuxfs2-rootfs , version: latest}
と
- name: diego_cell_z1
instances: 1
resource_pool: diego_cell_z1
templates:
- name: consul_agent
release: cf
- name: rep
release: diego
- name: garden
release: garden-runc # <- garden-linuxから変更
- name: cflinuxfs2-rootfs-setup
release: cflinuxfs2-rootfs
- name: metron_agent
release: cf
の2箇所を変更して、
bosh upload release https://bosh.io/d/github.com/cloudfoundry/garden-runc-release?v=0.8.0
bosh -n deploy
でOK。
Cellが3つあればCanary Deployできるはず。コンテナ上のアプリは特に問題なく動いています。
多分近いうちにこっちがデフォルトになると思います。Pivotal Web Servicesでは既にProductionでrunCが使われています。
1年前の記事ですが、runCにするメリットについてはこちら。