インプレス[コンピュータ・IT]ムック Kubernetes完全ガイド 第2版
インプレス / 2020年08月07日 / 全687ページ
Kubernetes はコンテナ化されたアプリケーションのデプロイ、スケーリングなどの管理を自動化するコンテナオーケストレーションエンジンです。本書ではKubernetesに関して、アプリケーション開発者およびインフラエンジニアが利用する機能を網羅的に取り上げます。今回、前版を見直し、バージョン1.18に対応しました(アルファ機能を含む)。また、認定資格CKA/CKAD取得に役立つ、さまざまな知識が得られます。285枚の図、312個のサンプルマニフェスト、257個のよくある質問と回答により、前版以上に分かりやすいものとなっています。
目次
- 免責事項
- はじめに
- 本書について
- 第1章 Docker の復習と「Hello, Kubernetes」
- 1.1 Docker の復習
- 1.2 さあ、Kubernetes の世界へ
- 第2章 なぜKubernetes が必要なのか?
- 2.1 Kubernetes とは
- 2.2 Kubernetes の歴史
- 2.3 Kubernetes を使うと何ができるのか
- 2.4 まとめ
- 第3章 Kubernetes 環境の選択肢
- 3.1 Kubernetes 環境の種別
- 3.2 ローカルKubernetes
- 3.3 Kubernetes 構築ツール
- 3.4 パブリッククラウド上のマネージドKubernetes サービス
- 3.5 Kubernetes プレイグラウンド/3.6 まとめ
- 第4章 API リソースとkubectl
- 4.1 本章以降を読み進めるための準備
- 4.2 Kubernetes の基礎
- 免責事項
- はじめに
- 本書について
- 第1章 Docker の復習と「Hello, Kubernetes」
- 1.1 Docker の復習
- 1.2 さあ、Kubernetes の世界へ
- 第2章 なぜKubernetes が必要なのか?
- 2.1 Kubernetes とは
- 2.2 Kubernetes の歴史
- 2.3 Kubernetes を使うと何ができるのか
- 2.4 まとめ
- 第3章 Kubernetes 環境の選択肢
- 3.1 Kubernetes 環境の種別
- 3.2 ローカルKubernetes
- 3.3 Kubernetes 構築ツール
- 3.4 パブリッククラウド上のマネージドKubernetes サービス
- 3.5 Kubernetes プレイグラウンド/3.6 まとめ
- 第4章 API リソースとkubectl
- 4.1 本章以降を読み進めるための準備
- 4.2 Kubernetes の基礎
- 4.3 Kubernetes とリソース
- 4.4 Namespace による仮想的なクラスタの分離
- 4.5 CLI ツールkubectl
- 4.6 まとめ
- 第5章 Workloads APIs カテゴリ
- 5.1 Workloads APIs カテゴリの概要
- 5.2 Pod
- 5.3 ReplicaSet ReplicationController
- 5.4 Deployment
- 5.5 DaemonSet
- 5.6 StatefulSet
- 5.7 Job
- 5.8 CronJob
- 5.9 まとめ
- 第6章 Service APIs カテゴリ
- 6.1 Service APIs カテゴリの概要
- 6.2 Kubernetes クラスタのネットワークとService
- 6.3 ClusterIP Service
- 6.4 ExternalIP Service
- 6.5 NodePort Service
- 6.6 LoadBalancer Service
- 6.7 Service のその他の機能
- 6.8 Headless Service(None)
- 6.9 ExternalName Service
- 6.10 None-Selector Service
- 6.11 Ingress
- 6.12 まとめ
- 第7章 Config & Storage APIs カテゴリ
- 7.1 Config & Storage APIs カテゴリの概要/7.2 環境変数の利用
- 7.3 Secret
- 7.4 ConfigMap
- 7.5 PersistentVolumeClaim
- 7.6 Volume
- 7.7 PersistentVolume(PV)
- 7.8 PersistentVolumeClaim (PVC)
- 7.9 volumeMounts で利用可能なオプション
- 7.10 まとめ
- 第8章 Cluster APIs カテゴリとMetadata APIs カテゴリ
- 8.1 Cluster APIs カテゴリとMetadata APIs カテゴリの概要
- 8.2 Node
- 8.3 Namespace
- 8.4 まとめ
- 第9章 リソース管理とオートスケーリング
- 9.1 リソースの制限
- 9.2 Cluster Autoscaler とリソース不足
- 9.3 LimitRange によるリソース制限
- 9.4 QoS Class
- 9.5 ResourceQuota によるNamespace のリソースクォータ制限
- 9.6 HorizontalPodAutoscaler(HPA)
- 9.7 VerticalPodAutoscaler(VPA)
- 9.8 まとめ
- 第10章 ヘルスチェックとコンテナのライフサイクル
- 10.1 ヘルスチェック
- 10.2 コンテナのライフサイクルと再始動(restartPolicy)
- 10.3 Init Containers
- 10.4 起動直後と終了直前に任意のコマンドを実行する(postStart preStop)
- 10.5 Pod の安全な停止とタイミング
- 10.6 リソースを削除した時の挙動
- 10.7 まとめ
- 第11章 メンテナンスとノードの停止
- 11.1 ノードの停止とPod の停止/11.2 スケジューリング対象からの除外と復帰(cordon uncordon)
- 11.3 ノードの排出処理によるPod の退避(drain)
- 11.4 PodDisruptionBudget(PDB)による安全な退避
- 11.5 まとめ
- 第12章 高度で柔軟なスケジューリング
- 12.1 フィルタリングとスコアリング/12.2 マニフェストで指定するスケジューリング
- 12.3 ビルトインノードラベルとラベルの追加
- 12.4 nodeSelector(Simple Node Affinity)
- 12.5 Node Affinity
- 12.6 matchExpressions のオペレータとset-based 条件
- 12.7 Node Anti-Affinity/12.8 Inter-Pod Affinity
- 12.9 Inter-Pod Anti-Affinity
- 12.10 複数の条件を組み合わせたPod のスケジューリング
- 12.11 1.18 Beta TopologySpreadConstraints によるトポロジ均衡
- 12.12 Taints とTolerations
- 12.13 PriorityClass によるPod の優先度と退避
- 12.14 その他のスケジューリング
- 12.15 まとめ
- 第13章 セキュリティ
- 13.1 ServiceAccount
- 13.2 RBAC(Role Based Access Control)
- 13.3 SecurityContext
- 13.4 PodSecurityContext
- 13.5 1.18 Beta PodSecurityPolicy
- 13.6 NetworkPolicy
- 13.7 認証認可とAdmission Control
- 13.8 1.18 Alpha PodPreset
- 13.9 Secret リソースの暗号化
- 13.10 まとめ
- 第14章 マニフェストの汎用化を行うオープンソースソフトウェア
- 14.1 マニフェストの汎用化/14.2 Helm
- 14.3 Kustomize
- 14.4 Ksonnet/14.5 その他のマニフェスト関連のツール
- 14.6 まとめ
- 第15章 モニタリング
- 15.1 Kubernetes における監視/15.2 Datadog
- 15.3 Prometheus
- 15.4 まとめ
- 第16章 コンテナログの集約
- 16.1 コンテナ上のアプリケーションのログ出力/16.2 Fluentd によるログ集約
- 16.3 Datadog Logs によるログ集約
- 16.4 Grafana Loki によるログ集約/16.5 まとめ
- 第17章 Kubernetes 環境でのCI/CD
- 17.1 Kubernetes 環境でのCI/CD/17.2 GitOps
- 17.3 GitOps に適したCI ツール/17.4 CI 時にKubernetes のマニフェストのチェックを行う
- 17.5 GitOps に適したCD ツール
- 17.6 開発環境を整えるツール
- 17.7 まとめ
- 第18章 マイクロサービスアーキテクチャとサービスメッシュ
- 18.1 マイクロサービスアーキテクチャとは
- 18.2 サービスメッシュとは
- 18.3 Istio
- 18.4 まとめ
- 第19章 Kubernetes のアーキテクチャを知る
- 19.1 Kubernetes のアーキテクチャの概略/19.2 etcd
- 19.3 kube-apiserver
- 19.4 kube-scheduler/19.5 kube-controller-manager
- 19.6 kubelet
- 19.7 kube-proxy
- 19.8 CNI(Container Network Interface) Plugin/19.9 kube-dns(CoreDNS)
- 19.10 cloud-controller-manager
- 19.11 その他のコンポーネントとクラスタのチェック/19.12 CustomResourceDefinitionとOperator
- 19.13 まとめ
- 第20章 Kubernetes とこれから
- 20.1 Kubernetes を取り巻く標準化
- 20.2 Kubernetes とエコシステム
- 20.3 まとめ
- 付録A 巻末付録
- A.1 kubectl 使用時におけるリソースの省略表現
- A.2 よくある質問とその答え
- あとがき
- 索引
- 著者紹介
- 奥付
※このデジタル雑誌には目次に記載されているコンテンツが含まれています。それ以外のコンテンツは、本誌のコンテンツであっても含まれていません のでご注意ください。
※電子版では、紙の雑誌と内容が一部異なる場合や、掲載されないページがある場合があります。