インプレス[コンピュータ・IT]ムック Kubernetes CI/CDパイプラインの実装
インプレス / 2021年10月19日 / 全399ページ
本書は、Kubernetesを活用したアプリケーション開発やそのリリースサイクルを自動化するためのノウハウについて解説しています。1冊全体を通してKubernetes 環境におけるアプリケーションライフサイクルの構築を順を追って体験します。継続的インテグレーションと継続的デリバリによって、「いかに少ない労力で開発プロセスを運用し続けるか」という課題に取り組みます。従来の開発プロセスからクラウドネイティブな開発プロセスへの変化を理解し、実践することにより、運用負担の軽減や迅速なサービス展開が可能となります。
目次
- 商標
- はじめに
- 読者ターゲット/本書に関する諸注意本書の構成
- 本書の実行環境/本書で使用するコード
- 第1章 開発プロセスの運用変化
- 1-1 開発プロセスの自動化と標準化
- 1-1-1 アプリケーションライフサイクル
- 1-1-2 開発プロセス改善の効果
- 1-1-3 既存の開発プロセスの課題
- 1-1-4 Kubernetes 導入における開発プロセス
- 1-2 運用の可搬性/1-2-1 Kubernetes 前提の実装
- 1-2-2 パイプラインやジョブの標準仕様
- 1-3 まとめ
- 第2章 クラウドネイティブ開発に向けた環境準備
- 2-1 クラウドネイティブな環境/2-1-1 Cloud Native Trail Map
- 2-1-2 Tekton と Argo プロジェクト
- 2-1-3 Git リポジトリとコンテナレジストリ
- 2-1-4 デプロイメント環境
- 2-2 Kubernetes クラスタの準備
- 2-2-1 GKE クラスタの事前設定
- 商標
- はじめに
- 読者ターゲット/本書に関する諸注意本書の構成
- 本書の実行環境/本書で使用するコード
- 第1章 開発プロセスの運用変化
- 1-1 開発プロセスの自動化と標準化
- 1-1-1 アプリケーションライフサイクル
- 1-1-2 開発プロセス改善の効果
- 1-1-3 既存の開発プロセスの課題
- 1-1-4 Kubernetes 導入における開発プロセス
- 1-2 運用の可搬性/1-2-1 Kubernetes 前提の実装
- 1-2-2 パイプラインやジョブの標準仕様
- 1-3 まとめ
- 第2章 クラウドネイティブ開発に向けた環境準備
- 2-1 クラウドネイティブな環境/2-1-1 Cloud Native Trail Map
- 2-1-2 Tekton と Argo プロジェクト
- 2-1-3 Git リポジトリとコンテナレジストリ
- 2-1-4 デプロイメント環境
- 2-2 Kubernetes クラスタの準備
- 2-2-1 GKE クラスタの事前設定
- 2-2-2 GKE クラスタの構築
- 2-3 Git リポジトリの準備/2-3-1 GitLab.com のアカウント登録
- 2-3-2 GitLab.com のプロジェクト作成
- 2-3-3 Git リポジトリの権限分離
- 2-3-4 Git リポジトリのブランチ戦略
- 2-4 マイクロサービスのデプロイ/2-4-1 BookInfo の概要
- 2-4-2 BookInfo のデプロイ
- 2-4-3 BookInfo の外部接続確認
- 2-5 まとめ
- 第3章 Tekton Pipelines の概要
- 3-1 Tekton Pipelines のカスタムリソース/3-1-1 Task / Pipeline
- 3-1-2 TaskRun / PipelineRun
- 3-2 Tekton Pipelines の導入
- 3-2-1 Tekton Pipelines のアーキテクチャ
- 3-2-2 Tekton Pipelines のインストール
- 3-2-3 Task の動作確認
- 3-3 Task の詳細設定
- 3-3-1 Steps フィールド
- 3-3-2 Workspaces フィールド
- 3-3-3 Parameters フィールド
- 3-3-4 Results フィールド
- 3-3-5 Sidecar フィールド
- 3-4 まとめ
- 第4章 継続的インテグレーションのパイプライン
- 4-1 パイプラインの構成/
- 4-1-2 Tekton Hub の活用
- 4-2 ソースコードの取得/4-2-1 Tekton Pipelines の認証
- 4-2-2 Git Clone の実行
- 4-3 アプリケーションビルド
- 4-3-1 Gradle のビルド概要
- 4-3-2 Gradle の Build 実行
- 4-4 マニフェストチェック/4-4-1 マニフェストチェックの概要
- 4-4-2 Conftest の実行
- 4-5 コンテナビルド/4-5-1 コンテナビルドの概要
- 4-5-2 Kaniko の実行/4-6 コンテナイメージスキャン
- 4-6-1 コンテナイメージスキャンの概要
- 4-6-2 Trivy の実行
- 4-7 コンテナデプロイ/4-7-1 デプロイメントの認証
- 4-7-2 kubectl の実行
- 4-8 パイプラインの実施/4-8-1 パイプラインの詳細
- 4-8-2 パイプラインの実行
- 4-9 まとめ
- 第5章 イベント駆動のパイプライン実行
- 5-1 Tekton Triggers のカスタムリソース
- 5-1-2 EventListener
- 5-2 Tekton Triggers の導入
- 5-2-1 Tekton Triggers のアーキテクチャ
- 5-2-2 Tekton Triggers のインストール
- 5-2-3 Ingress Controllers の設定
- 5-3 アプリケーションソースコードの更新
- 5-3-1 開発時のパイプライン実行の流れ/5-3-2 Tekton Triggers のオブジェクト詳細
- 5-3-3 アプリケーションソースコード更新の実装
- 5-4 マニフェストリポジトリの更新/5-4-1 マニフェスト更新時のパイプライン実行の流れ
- 5-4-2 マニフェストリポジトリ更新の実装
- 5-5 まとめ
- 第6章 Argo CD の概要
- 6-1 デプロイメントの自動化/6-1-1 継続的インテグレーションと継続的デリバリの分離
- 6-1-2 GitOps の構成パターン
- 6-1-3 Argo CD の特徴
- 6-2 Argo CD のカスタムリソース/6-2-1 Application
- 6-2-2 AppProject
- 6-3 Argo CD の導入/6-3-1 Argo CD のアーキテクチャ
- 6-3-2 Argo CD のインストール
- 6-4 アプリケーションデプロイメント/6-4-1 デプロイメント構成
- 6-4-2 AppProject[stg-bookinfo] の登録
- 6-4-3 Application 登録
- 6-5 まとめ
- 第7章 継続的デリバリのデプロイメント
- 7-1 Kustomize の概要/7-1-1 デプロイメントの環境差異を補完する
- 7-1-2 Kustomize によるマニフェスト管理
- 7-2 マニフェストの同期/7-2-1 自動同期ポリシー
- 7-2-2 同期の実行順序
- 7-2-3 同期の依存関係
- 7-3 機密情報の管理/7-3-1 GitOps の Secret 管理
- 7-3-2 External Secrets の概要
- 7-3-3 Workload Identity の導入
- 7-3-4 External Secrets の利用
- 7-4 マニフェストのデプロイ/7-4-1 継続的デリバリと継続的デプロイメント
- 7-4-2 本番環境へのデプロイメント
- 7-5 まとめ
- 第8章 継続的デリバリのリリース
- 8-1 リリースの自動化
- 8-1-1 デプロイメント戦略
- 8-1-2 リリースにおけるテスト
- 8-2 Argo Rollouts のカスタムリソース
- 8-2-1 Rollout
- 8-2-2 AnalysisTemplate
- 8-3 Argo Rollouts の導入/8-3-1 Argo Rollouts のアーキテクチャ
- 8-3-2 Argo Rollouts のインストール
- 8-4 アプリケーションリリース/8-4-1 Deployment から Rollout への移行
- 8-4-2 Deployment リソースの置き換え
- 8-4-3 Deployment リソースの呼び出し
- 8-4-4 アプリケーションライフサイクル
- 8-5 まとめ
- あとがき
- 索引
- 著者プロフィール
- 奥付
※このデジタル雑誌には目次に記載されているコンテンツが含まれています。それ以外のコンテンツは、本誌のコンテンツであっても含まれていません のでご注意ください。
※電子版では、紙の雑誌と内容が一部異なる場合や、掲載されないページがある場合があります。