一昨日昨日と睡眠時間が不安定で今日もぼーっとしがち、というか頭痛すらして来た。
やりたい事はあるけど今日は早く寝よう。というか何であれば明日有休取ろう。
GKEのプロジェクトはhelmを使ってデプロイ・運用しているんだけど、不慣れな頃にエイヤッと作ったManifestfileを手探りで増強していったもんだから、非常に取り回しの悪いものになってしまっていた。
というわけでhelmのテンプレートとかループとかを活かした形にリファクタリング。
元々はActive/Standbyの二系統の箱があって、そこに埋め込まれた変数でイメージを更新していくという設計だった。
kind: Deployment metadata: name: active labels: app: hoge mode: active spec: template: containers: - name: image: hoge:{{.Values.tag.active}} --- kind: Deployment metadata: name: standby labels: app: hoge mode: standby spec: template: containers: - name: image: hoge:{{.Values.tag.standby}}
ただ、これはreadness/livenessを上手いこと設定しないと瞬断してしまうし、事実上リリース前チェック程度にしか確認できない代物だった。
で、新しくやろうとしてるのは↓のように変数tagsをループで回してそれぞれデプロイ&serviceでtagで判別という方式。
{{- range $tag := .Values.tags}} kind: Deployment metadata: name: hoge-{{$tag}} labels: tag: {{$tag}} spec: template: containers: - name: image: hoge:{{$tag}} --- {{- end}}
必要に応じて3系統でも4系統でもデプロイしてserviceの接続を変えて、不要になったら外していく感じ。
いやさ、これ折角のDeploymentのRollingUpdateやRollbackといった便利な機能を殺してしまう発想だし、本当はactive/standbyでそれぞれRELEASEとして分けてしまう方がスマートなのは分かってるんだけど、外部に出せるIPが限られてるんで苦肉の策なんですわ。
結構Kuberenetesの勉強会の資料なんかを漁ってると、Spinnakerの導入まで至らないところはHelmを使ってるって話を見かけるんだけど、具体的な構成とか運用とか見てみたいなー。
- 作者: Kelsey Hightower,Brendan Burns,Joe Beda,松浦隼人
- 出版社/メーカー: オライリージャパン
- 発売日: 2018/03/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
やっとKubernetes自体の技術書が出揃ってきたって段階だし、周辺ツールのノウハウみたいのはこれからって感じだろうか。
ようやっと話題の『ゆるキャン』の1話をチェックする。
- 発売日: 2018/02/20
- メディア: Amazonビデオ
- この商品を含むブログを見る
なるほど 、萌えアニメ的なワチャワチャ感が控えめで環境映像的に楽しめる、好みの作風だ。