GAミント至上主義

コストにうるさいWEBアプリ開発者。最近はPython, Vue.js, Kubernetesがメイン@株式会社ビズオーシャン。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とデプロイまでコマンド一発でできるようになった。