仕事中の問題と解決メモ。

最近はPythonとGoogle Cloud Platformがメイン。株式会社ビズオーシャンで企画と開発運用、データ活用とか。 http://mstdn.bizocean.co.jp/@uyamazak https://github.com/uyamazak/

kubectlでimageの変更をコマンドラインで行う

Google Container Engineでのデプロイは、今までは

kubectl edit deploy {name}

でエディタを開き、手でimageの値を書き換えていたけど、面倒になったので自動化を考えた。

マスターのバージョンは1.4.8。

editではなくpatchというコマンドがあった。

kubectl patch - Kubernetes


不要な部分を削除して下記の様な形で成功した。
nameを入れないとエラーになるのでハマった。

既存のnameにしないと、別名で複数起動してしまう。

kc patch deployment redis-pd -p '{"spec": { "template": { "spec": {"containers": [{"name":"appname", "image": "asia.gcr.io/project-id/appname:tag"}]}}}}'

これを更新用シェルスクリプトに含めて、アプリ名、タグ名を入れればpushとデプロイまでコマンド一発でできるようになった。