Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Kind で量産する 使い捨て Kubernetes チェシャ猫 (@y_taka_23) CI/CD Test Night #5 (2019/10/02) #cicd_test_night
Slide 2
Slide 2 text
Kubernetes 使ってる人? #cicd_test_night
Slide 3
Slide 3 text
流行ってますね! #cicd_test_night
Slide 4
Slide 4 text
でも凝りすぎると辛くない? #cicd_test_night
Slide 5
Slide 5 text
Kubernetes の光と †闇† ● Platform のための Platform ○ Kubernetes を前提とした多数の OSS ○ Webehook による処理の挿入 ○ Custom Resource + Controller による API 拡張 ● 実際に E2E テストしないと検証が困難 ○ 複数のカスタマイズが干渉しないか? ○ バージョンアップしても大丈夫か? #cicd_test_night
Slide 6
Slide 6 text
現物の Kubernetes クラスタを CI 上から使いたい #cicd_test_night
Slide 7
Slide 7 text
案 A:ビルドごとに Namespace ● 一つのクラスタを Namespace で分割 ○ 長所:準備・撤収が早い、追加コストが安い ○ 短所:クラスタの構成や設定はカスタム不可 PR #1 PR #2 PR #3 #cicd_test_night
Slide 8
Slide 8 text
案 B:ビルドごとにクラスタ ● マネージドサービスから毎回振り出し ○ 長所:バージョンやクラスタの構成が可変 ○ 短所:立ち上がりが遅く、お金もかかる PR #1 PR #2 PR #3 #cicd_test_night
Slide 9
Slide 9 text
もっと手軽に使い捨てたい #cicd_test_night
Slide 10
Slide 10 text
Kind https://github.com/kubernetes-sigs/kind #cicd_test_night
Slide 11
Slide 11 text
Kind の特徴 ● マルチノードの Kubernetes が作成可能 ○ 他のツールはシングルノードのみ ○ 複数コンテナを立ち上げてノードと見なす ● 自由度の高いカスタマイズ ○ ノード (control-plane, worker) 構成 ○ Kubernetes のバージョン指定 ○ Control-Plane の実行時設定も指定可能 #cicd_test_night
Slide 12
Slide 12 text
Docker OS (K8s は Kubernetes の略) #cicd_test_night
Slide 13
Slide 13 text
YAML でクラスタを定義 #cicd_test_night
Slide 14
Slide 14 text
YAML でクラスタを定義 冗長化 Control Plane 2 台 + LB #cicd_test_night
Slide 15
Slide 15 text
YAML でクラスタを定義 Worker 3 台 #cicd_test_night
Slide 16
Slide 16 text
Docker OS Container (K8s Node) Container (K8s Node) (K8s は Kubernetes の略) #cicd_test_night
Slide 17
Slide 17 text
Kubernetes IN Docker https://github.com/kubernetes-sigs/kind #cicd_test_night
Slide 18
Slide 18 text
Docker OS Container (K8s Node) Container (K8s Node) (K8s は Kubernetes の略) Docker Docker #cicd_test_night
Slide 19
Slide 19 text
Docker OS Container (K8s Node) Container (K8s Node) Docker Docker K8s Container K8s Container K8s Container K8s Container (K8s は Kubernetes の略) #cicd_test_night
Slide 20
Slide 20 text
Docker が使えればどこでも立つ #cicd_test_night
Slide 21
Slide 21 text
CircleCI との組み合わせ例 #cicd_test_night
Slide 22
Slide 22 text
CircleCI との組み合わせ例 Machine Executor #cicd_test_night
Slide 23
Slide 23 text
CircleCI との組み合わせ例 クラスタ作成 #cicd_test_night
Slide 24
Slide 24 text
CircleCI との組み合わせ例 クラスタにアクセス #cicd_test_night
Slide 25
Slide 25 text
まとめ ● Kubernetes のプラットフォーム化 ○ クラスタの実物がないと検証が辛い ● Kind によるローカルクラスタ構築 ○ 複数のコンテナをノードに見立てる ○ 自由度の高いカスタマイズ要素 ● Pull-Request ベースの CI との統合 ○ コンテナベースなのでビルドに組み込みやすい #cicd_test_night
Slide 26
Slide 26 text
Enjoy Continuous Kubernetes! Presented by チェシャ猫 (@y_taka_23) #cicd_test_night