Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
CI in kubernetes
matsuo
June 13, 2020
Technology
1
3.3k
CI in kubernetes
matsuo
June 13, 2020
Tweet
Share
More Decks by matsuo
See All by matsuo
matsu1235
5
770
matsu1235
4
330
matsu1235
0
360
Other Decks in Technology
See All in Technology
sakon310
4
4.2k
omn
0
570
fujiihda
8
840
smzksts
0
210
takem001
0
870
ymas0315
0
140
nihonbuson
2
1.5k
clustervr
0
210
oracle4engineer
1
210
vkbaba
0
110
harshbothra
0
100
cmwatanabeseigo
0
320
Featured
See All Featured
nonsquared
81
3.3k
yeseniaperezcruz
302
31k
jlugia
216
16k
dotmariusz
94
5.1k
stephaniewalter
260
11k
trishagee
20
2k
garrettdimon
287
110k
malarkey
192
8.5k
shlominoach
176
7.4k
caitiem20
308
17k
chriscoyier
499
130k
scottboms
251
11k
Transcript
マスター タイトルの書式設定 KubernetesにおけるCIについて KubeFest Tokyo 2020 - LT
マスター タイトルの書式設定 自己紹介 名前 : 松尾 所属 :
株式会社オージス総研 職種 : インフラエンジニア 1
マスター タイトルの書式設定 そもそもCIとは? 2
マスター タイトルの書式設定 そもそもCIとは? Continuous Integrationの略 継続的インテグレーションと呼ばれている 開発者がコード変更を行うたびに、自動化されたビルドやテストを行うこと
これにより、小さなサイクルでインテグレーションを繰り返し行い、エラー修正や開発を迅速に行 うことが出来る 3 Plan Code Build Test Release Deploy Operate Continuous Integration
マスター タイトルの書式設定 CIの構成要素 4
マスター タイトルの書式設定 CIの構成要素 5 このうちテストには Lint、コード規約、ユニットテスト デプロイテスト
結合テスト 負荷テスト 脆弱性チェック シークレットチェック ベストプラクティスチェック コンプライアンスチェック カオスエンジニアリング ・・・ 今回は主に、テストについてお話します Code Build Test
マスター タイトルの書式設定 Kubernetesの構成要素 6
マスター タイトルの書式設定 物理/VMホスト 物理/VMホスト Kuberntesクラスタ コンテナ 従来システムの構成要素 Kubernetesを使ったシステムの構成要素 OS アプリケーション
ミドルウェア OS アプリケーション ミドルウェア 7 Kubernetesの構成要素 ※簡略化して書いています
マスター タイトルの書式設定 Gitリポジトリ コンテナレジストリ Dockerfile アプリケーション コンテナイメージ Manifest 適用 物理/VMホスト
Kuberntesクラスタ コンテナ OS アプリケーション ミドルウェア 8 Kubernetesの構成要素 開発者 ※簡略化して書いています プッシュ 静的なもの 動的なもの
マスター タイトルの書式設定 レイヤー 静的な 構成要素 動的な 構成要素 物理/VM等の インフラ構成 Terraform、CFn等
実環境 Kubernetes Manifest Kubernetesクラスタ コンテナ Dockerfile ベースイメージ コンテナイメージ ミドルウェア パッケージ アプリケーションコード リポジトリ Gitリポジトリ - コンテナ レジストリ - 9 Kubernetesの構成要素
マスター タイトルの書式設定 Kubernetsの構成要素に対する テスト例 10
マスター タイトルの書式設定 Kubernetsの構成要素に対するテスト例 静的テスト(ファイル) アプリケーションプログラム Lint、コード規約
ユニットテスト インフラ構成(CFn) Lint(cfn-lint) セキュリティチェック(cfn-ng) Dockerfile ベストプラクティスチェック(hadolint) K8s Manifest セキュリティチェック(kubesec) 自作ガバナンスルールのチェック(conftest) Yamlフォーマットチェック(kubeval) 結合テスト(kubetest) その他 Gitシークレットチェック(Git-secrets) 静的テスト(コンテナイメージ) CVE脆弱性チェック(Trivy) CISベンチマーク、ベストプラクティスのチェック(dockle) 動的テスト 実際にテストクラスタにデプロイして簡易的なテストを行う(kind) カオスエンジニアリング(litmus) 11
マスター タイトルの書式設定 いつテストを行うべきか? 12
マスター タイトルの書式設定 いつテストを行うべきか? 13 一般的にはShift Left Testingという考え方があり、ライフサイクルのより手前、つ まり静的なものに対して、早期かつ頻繁にテストを行うべきと言われています。 Gitリポジトリ
コンテナレジストリ Dockerfile コンテナイメージ Manifest 適用 物理/VMホスト Kuberntesクラスタ コンテナ OS アプリケーション ミドルウェア 開発者 プッシュ 静的なもの 動的なもの テスト
マスター タイトルの書式設定 KubernetesにおけるCI例 14
マスター タイトルの書式設定 KubernetesにおけるCI例 15 Push CIツール • アプリケーションコード • Lint、ユニットテスト
• Dockerfile • 脆弱性チェック • ベストプラクティスチェック • 全ファイル • シークレットチェック --- ビルド実施 --- • コンテナイメージ • ベストプラクティスチェック Push git Hook dev アプリケーション コード Dockerfile コンテナレ ジストリ Git-secrets コンテナ イメージ
マスター タイトルの書式設定 KubernetesにおけるCI例 16 Manifest Kubernetes クラスタ Push CIツール •
Manifest • Yamlフォーマットチェック • ユニットテスト • ベストプラクティスチェック • ガバナンスチェック • シークレットチェック 適用 git Hook conftest Git-secrets kubetest kubeval k8s admin
マスター タイトルの書式設定 こちらも良ければお願いします
マスター タイトルの書式設定 Shift Leftを心掛けてKubernetesでも CIをやっていきましょう!