9: KubeCon OpeningKeynote - Project Update
1. アプリケーションコードの変更
a. git clone HOGE;
b. git checkout -b funcA;
c. vi test.java;
d. git push origin funcA
e. PR を出す
f. Merge する(Dev 環境へ反映)
g. Docker Image の build
h. Registry への upload
i. リリース Tag を打つ
2. Kubernetes クラスタへの反映
a. 上記で Tag を打ったことで、Kubernetes Manifest YAML が生成されてPR が自動で出される
b. マージするとapply される(本番適用)
GitHub
k8s YAML
manifest
GitHub
Application
Code
Using Containers forContinuous Integration and Continuous Delivery
podTemplate(label: 'mypod') {
node('mypod') {
sh 'Hello world!'
}
}
build task をコンテナとして起動
Groovy で記述可能
PodTemplate と同等の表現力
https://github.com/jenkinsci/kubernetes-plugin
41.
Deploying to KubernetesThousands of Times Per/Day
Kubernetes を使って High Velocity を実現しましょう!
※ 変更から反映までの間隔を出来るだけ短くすること
42.
Deploying to KubernetesThousands of Times Per/Day
1.Image First
● Immutable なコンテナにする
● Entrypoint を設定してそのまま起動できるようにする
● local / dev / prd で同じイメージを利用する
● latest タグは使わない
● GitHub の特定のコミットと Image Tag を紐付けておく
● local でビルドして push はしない(自動化必須)