内容説明
※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
本書では、クラウドネイティブに求められる背景やトレンドを押さえるとともに、「Kubernetes」やそのエコシステムを利用し、クラウドネイティブアプリケーションの実装について解説しています。Kubernetesは、コンテナを管理するコンテナオーケストレーションツールであり、これを活用することで、適切なインフラリソースの提供だけではなく、アプリケーションの開発や展開が、容易かつ動的に行える環境を構築できます。
本書の読者対象は、これからクラウドネイティブアプリケーションの開発・運用を始める方です。したがってその内容も、Kubernetesとそのエコシステムを活用したアプリケーションの開発、運用にフォーカスしています。最初にKubernetesそのものの仕組みの基礎を説明したあとは、その上で動くアプリケーションを運用するために必要なエコシステムやその活用方法に重点を置いています。
全体は、2部構成になっており、第1部では、クラウドネイティブアプリケーションを支える技術の一つとして注目される、Kubernetesの概要を紹介します。クラウドネイティブの考え方からKubernetesが提供するコンポーネントの役割まで、本書を読み進める上でのポイントを取り上げます。
第2部では、Kubernetesエコシステムを活用して、クラウドネイティブアプリケーションの開発やその上で動くアプリケーションの管理方法を紹介します。クラウドの特徴を活かしたアプリケーション開発や運用の重要性を取り上げます。
目次
表紙
商標
はじめに
本書のターゲット/諸注意
本書の構成
本書の実行環境/本書で使用するコード
本書の表記
第 1 部 Kubernetes の基礎知識
第 1 章 クラウドネイティブが目指す世界
1-1 クラウドネイティブとは
1-1-1 クラウドネイティブが提供するビジネス価値
1-1-2 クラウドネイティブを支える構成要素
1-1-3 クラウドネイティブアプリケーションの方法論
1-2 クラウドネイティブを推進する団体
1-2-1 CNCF の役割
1-2-2 CNCF のプロジェクト
1-3 クラウドネイティブに求められる組織体制
1-3-1 プロセスと組織の変革
1-3-2 組織がたどる継続的な改善
1-4 まとめ
第 2 章 コンテナを支える技術
2-1 コンテナの概要/2-1-1 コンテナの提供価値
2-1-2 コンテナの要素技術
2-1-3 OCI によるコンテナ技術の標準化
2-1-4 コンテナランタイムのレイヤ
2-2 Kubernetes の概要/2-2-1 コンテナオーケストレーションの役割
2-2-2 Kubernetes とは
2-2-3 Kubernetes に対応した製品とその形態
2-2-4 Kubernetes のエコシステム
2-3 まとめ
第 3 章 Kubernetes のアーキテクチャ
3-1 Kubernetes クラスタの全体像
3-1-1 オブジェクトの概要
3-1-2 コントロールプレーンの概要
3-2 マスターノードのコンポーネント/3-2-1 kube-apiserver
3-2-2 kube-scheduler
3-2-3 kube-controller-manager
3-2-4 etcd
3-3 ワーカーノードのコンポーネント
3-3-1 kubelet
3-3-2 kube-proxy
3-4 拡張コンポーネント
3-4-1 Service Discovery
3-4-2 Visualization & Control
3-5 まとめ
第 4 章 Kubernetes クラスタの構築
4-1 kubeadm
4-1-1 kubeadm を利用したクラスタ概要
4-1-2 クラスタノードの準備
4-1-3 マスターノードの構築
4-1-4 ワーカーノードの構築
4-2 Azure Kubernetes Service
4-2-1 AKS を利用したクラスタ概要
4-2-2 AKS の構築
4-3 サンプルコンテナのデプロイ/4-3-1 Hello World
4-4 まとめ
第 5 章 Kubernetes オブジェクトの概要
5-1 主要なオブジェクト
5-1-1 Pod
5-1-2 ReplicaSet
5-1-3 Deployment
5-1-4 Service
5-2 オブジェクトを利用したアプリケーション展開
5-2-1 Sock Shop のアーキテクチャ
5-2-2 Sock Shop のデプロイ
5-2-3 Pod フィールドの詳細
5-2-4 環境変数の取り扱い
5-3 オブジェクトを活用したオートスケール/5-3-1 Pod のオートスケール
5-3-2 水平オートスケール(HPA)
5-3-3 垂直オートスケール(VPA)
5-4 まとめ
第 2 部 クラウドネイティブアプリケーションの開発・運用
第 6 章 コンテナアプリケーションカタログ
6-1 YAML の管理
6-2 パッケージマネージメント
6-2-1 Helm の概要
6-2-2 Chart の展開
6-2-3 Chart のカスタマイズ
6-3 カスタムマネージドサービス
6-3-1 Operator の概要
6-3-2 Operator の展開
6-3-3 Operator の活用
6-4 まとめ
第 7 章 継続的インテグレーション
7-1 クラウドネイティブな継続的インテグレーション
7-1-1 継続的インテグレーションのフェーズ
7-2 コンテナビルド/7-2-1 コンテナビルドの概要
7-2-2 BuildKit によるコンテナビルド
7-2-3 Kaniko によるコンテナビルド
7-3 コンテナセキュリティ/7-3-1 コンテナアプリケーションセキュリティ
7-3-2 Clair の概要
7-3-3 Clair の実装
7-4 コンテナアプリの継続的な開発ワークフロー
7-4-1 Skaffold の概要
7-4-2 Skaffold の実装
7-5 まとめ
第 8 章 継続的デリバリ
8-1 クラウドネイティブな継続的デリバリ
8-1-1 デプロイメント戦略
8-1-2 Spinnaker の概要
8-1-3 Spinnaker のインストール
8-2 Blue/Green デプロイメント
8-2-1 Spinnaker の Sock Shop デプロイメント
8-2-2 Blue/Green デプロイメントパイプライン
8-3 Canary デプロイメント
8-3-1 自動カナリア分析の事前準備
8-3-2 自動カナリア分析のパイプライン
8-4 まとめ
第 9 章 マイクロサービス
9-1 マイクロサービスアーキテクチャの概要
9-1-1 モノリシックアーキテクチャの課題
9-1-2 マイクロサービスアーキテクチャによる設計/9-1-3 マイクロサービスアーキテクチャの利点
9-1-4 マイクロサービスアーキテクチャの課題
9-2 サービスメッシュの概念/9-2-1 サービスメッシュの利点
9-2-2 Istio の概要
9-2-3 Istio のアーキテクチャ
9-3 Kubernetes への Istio の展開
9-3-1 Kubernetes 上の Istio
9-3-2 Istio のインストール
9-3-3 サービスメッシュ上へのSock Shop の展開
9-4 耐障害性の向上/9-4-1 リトライ
9-4-2 パフォーマンス劣化への対応/9-4-3 タイムアウト
9-4-4 サーキットブレイカー
9-5 サービスの安全な更新/9-5-1 Blue/Green デプロイメント
9-5-2 Canary デプロイメント
9-6 カオスエンジニアリング
9-6-1 Istio によるフォールトインジェクション
9-7 分散トレーシング
9-7-1 分散トレーシングのための標準技術
9-7-2 Istio と Jaeger による分散トレーシング
9-7-3 Jaeger によるトレースの分析
9-8 まとめ
おわりに
索引
著者プロフィール
奥付
感想・レビュー
※以下の感想・レビューは、株式会社ブックウォーカーの提供する「読書メーター」によるものです。
酒井 敦
yshigeru
nishipy