Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CI in kubernetes

Cb589ae8a2f09067e4412d6d56bc339a?s=47 matsuo
June 13, 2020

CI in kubernetes

Cb589ae8a2f09067e4412d6d56bc339a?s=128

matsuo

June 13, 2020
Tweet

Transcript

  1. マスター タイトルの書式設定 KubernetesにおけるCIについて KubeFest Tokyo 2020 - LT

  2. マスター タイトルの書式設定 自己紹介  名前 : 松尾  所属 :

    株式会社オージス総研  職種 : インフラエンジニア 1
  3. マスター タイトルの書式設定 そもそもCIとは? 2

  4. マスター タイトルの書式設定 そもそもCIとは?  Continuous Integrationの略  継続的インテグレーションと呼ばれている  開発者がコード変更を行うたびに、自動化されたビルドやテストを行うこと

     これにより、小さなサイクルでインテグレーションを繰り返し行い、エラー修正や開発を迅速に行 うことが出来る 3 Plan Code Build Test Release Deploy Operate Continuous Integration
  5. マスター タイトルの書式設定 CIの構成要素 4

  6. マスター タイトルの書式設定 CIの構成要素 5  このうちテストには  Lint、コード規約、ユニットテスト  デプロイテスト

     結合テスト  負荷テスト  脆弱性チェック  シークレットチェック  ベストプラクティスチェック  コンプライアンスチェック  カオスエンジニアリング  ・・・  今回は主に、テストについてお話します Code Build Test
  7. マスター タイトルの書式設定 Kubernetesの構成要素 6

  8. マスター タイトルの書式設定 物理/VMホスト 物理/VMホスト Kuberntesクラスタ コンテナ 従来システムの構成要素 Kubernetesを使ったシステムの構成要素 OS アプリケーション

    ミドルウェア OS アプリケーション ミドルウェア 7 Kubernetesの構成要素 ※簡略化して書いています
  9. マスター タイトルの書式設定 Gitリポジトリ コンテナレジストリ Dockerfile アプリケーション コンテナイメージ Manifest 適用 物理/VMホスト

    Kuberntesクラスタ コンテナ OS アプリケーション ミドルウェア 8 Kubernetesの構成要素 開発者 ※簡略化して書いています プッシュ 静的なもの 動的なもの
  10. マスター タイトルの書式設定 レイヤー 静的な 構成要素 動的な 構成要素 物理/VM等の インフラ構成 Terraform、CFn等

    実環境 Kubernetes Manifest Kubernetesクラスタ コンテナ Dockerfile ベースイメージ コンテナイメージ ミドルウェア パッケージ アプリケーションコード リポジトリ Gitリポジトリ - コンテナ レジストリ - 9 Kubernetesの構成要素
  11. マスター タイトルの書式設定 Kubernetsの構成要素に対する テスト例 10

  12. マスター タイトルの書式設定 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
  13. マスター タイトルの書式設定 いつテストを行うべきか? 12

  14. マスター タイトルの書式設定 いつテストを行うべきか? 13  一般的にはShift Left Testingという考え方があり、ライフサイクルのより手前、つ まり静的なものに対して、早期かつ頻繁にテストを行うべきと言われています。 Gitリポジトリ

    コンテナレジストリ Dockerfile コンテナイメージ Manifest 適用 物理/VMホスト Kuberntesクラスタ コンテナ OS アプリケーション ミドルウェア 開発者 プッシュ 静的なもの 動的なもの テスト
  15. マスター タイトルの書式設定 KubernetesにおけるCI例 14

  16. マスター タイトルの書式設定 KubernetesにおけるCI例 15 Push CIツール • アプリケーションコード • Lint、ユニットテスト

    • Dockerfile • 脆弱性チェック • ベストプラクティスチェック • 全ファイル • シークレットチェック --- ビルド実施 --- • コンテナイメージ • ベストプラクティスチェック Push git Hook dev アプリケーション コード Dockerfile コンテナレ ジストリ Git-secrets コンテナ イメージ
  17. マスター タイトルの書式設定 KubernetesにおけるCI例 16 Manifest Kubernetes クラスタ Push CIツール •

    Manifest • Yamlフォーマットチェック • ユニットテスト • ベストプラクティスチェック • ガバナンスチェック • シークレットチェック 適用 git Hook conftest Git-secrets kubetest kubeval k8s admin
  18. マスター タイトルの書式設定 こちらも良ければお願いします

  19. マスター タイトルの書式設定 Shift Leftを心掛けてKubernetesでも CIをやっていきましょう!