本書は、Kubernetesコンテナオーケストレータの核となるコンセプトから使い方までを解説するとともに、アプリケーションの開発やメンテナンスを改善するためにKubernetesとそのAPIがどのように役立つのかを説明します。
はじめにKubernetesの概要と、Dockerなどのコンテナ技術を利用したアプリケーション開発の利点と使用方法について述べ、次にKubernetes自体をデプロイする方法を詳述します。また、Pod、LabelとAnnotation、Service、ReplicaSetなど、Kubernetesでサービスをデプロイする際に知っておくべき基本要素をまとめ、DaemonSet、Job、ConfigMapとSecretといったKubernetesにおける特別なオブジェクトについても学習します。そして、アプリケーションのライフサイクルに関係するDeploymentや、Kubernetesとストレージの統合について学び、実際に使われているアプリケーションをKubernetes上でデプロイする方法を紹介します。
Kubernetesの開発者たちが解説する本書は、クラウドネイティブなアプリケーションを開発したいエンジニア必携の一冊です。
翻訳者によるサポートページ
入門 Kubernetes
Kelsey Hightower、Brendan Burns、Joe Beda 著、松浦 隼人 訳
- TOPICS
- System/Network
- 発行年月日
- 2018年03月
- PRINT LENGTH
- 248
- ISBN
- 978-4-87311-840-6
- 原書
- Kubernetes: Up and Running
- FORMAT
- Print PDF EPUB
目次
はじめに 1章 Kubernetes入門 1.1 ベロシティ 1.1.1 イミュータブルであることの価値 1.1.2 宣言的設定 1.1.3 自己回復するシステム 1.2 サービスとチームのスケール 1.2.1 分離 1.2.2 アプリケーションとクラスタの簡単なスケール 1.2.3 マイクロサービスによる開発チームのスケール 1.2.4 一貫性とスケールのための依存関係の切り離し 1.3 インフラの抽象化 1.4 効率性 1.5 まとめ 2章 コンテナの作成と起動 2.1 コンテナイメージ 2.1.1 Dockerイメージフォーマット 2.2 Dockerでのアプリケーションイメージの作成 2.2.1 Dockerfile 2.2.2 イメージのセキュリティ 2.2.3 イメージサイズの最適化 2.3 リモートレジストリへのイメージの保存 2.4 Dockerコンテナランタイム 2.4.1 Dockerでコンテナを動かす 2.4.2 kuardアプリケーションへのアクセス 2.4.3 リソース使用量の制限 2.5 後片付け 2.6 まとめ 3章 Kubernetesクラスタのデプロイ 3.1 パブリッククラウドへの Kubernetesのインストール 3.1.1 Google Kubernetes Engineへの Kubernetesのインストール 3.1.2 Azure Container Serviceへの Kubernetesのインストール 3.1.3 Amazon Web Serviceへの Kubernetesのインストール 3.2 minikubeを使ったローカルへの Kubernetesのインストール 3.3 Raspberry Piで Kubernetesを動かす 3.4 Kubernetesクライアント 3.4.1 クラスタのステータス 3.4.2 Kubernetesのワーカノードの表示 3.5 クラスタのコンポーネント 3.5.1 Kubernetes proxy 3.5.2 Kubernetes DNS 3.5.3 Kubernetesの UI 3.6 まとめ 4章 よく使う kubectlコマンド 4.1 Namespace 4.2 Context 4.3 Kubernetes APIオブジェクトの参照 4.4 Kubernetesオブジェクトの作成、更新、削除 4.5 オブジェクトの Labelと Annotation 4.6 デバッグ用コマンド 4.7 まとめ 5章 Pod 5.1 Kubernetesにおける Pod 5.2 Pod単位で考える 5.3 Podマニフェスト 5.3.1 Podの作成 5.3.2 Podマニフェストの作成 5.4 Podを動かす 5.4.1 Podの一覧表示 5.4.2 Podの詳細情報 5.4.3 Podの削除 5.5 Podへのアクセス 5.5.1 ポートフォワードの使用 5.5.2 ログからの詳細情報の取得 5.5.3 execを使用したコンテナ内でコマンド実行 5.5.4 コンテナとローカル間でのファイル転送 5.6 ヘルスチェック 5.6.1 Liveness probe 5.6.2 Readiness probe 5.6.3 ヘルスチェックの種類 5.7 リソース管理 5.7.1 リソース要求 : 必要最低限のリソース 5.7.2 limitsを使ったリソース使用量の制限 5.8 Volumeを使ったデータの永続化 5.8.1 Volumeと Podの組み合わせ 5.8.2 Volumeと Podを組み合わせる別の方法 5.8.3 リモートディスクを使った永続化データ 5.9 すべてまとめて実行する 5.10 まとめ 6章 Labelと Annotation 6.1 Label 6.1.1 Labelの適用 6.1.2 Labelの変更 6.1.3 Labelセレクタ 6.1.4 APIオブジェクト内の Labelセレクタ 6.2 Annotation 6.2.1 Annotationの定義 6.3 後片付け 6.4 まとめ 7章 サービスディスカバリ 7.1 サービスディスカバリとは 7.2 Serviceオブジェクト 7.2.1 Service DNS 7.2.2 Readiness probe 7.3 クラスタの外に目を向ける 7.4 クラウドとの統合 7.5 より高度な詳細 7.5.1 Endpoints 7.5.2 手動でのサービスディスカバリ 7.5.3 kube-proxyとクラスタ IP 7.5.4 クラスタ IP関連の環境変数 7.6 後片付け 7.7 まとめ 8章 ReplicaSet 8.1 調整ループ 8.2 Podと ReplicaSetの関連付け 8.2.1 既存のコンテナを養子に入れる 8.2.2 コンテナの検疫 8.3 ReplicaSetを使ったデザイン 8.4 ReplicaSetの定義 8.4.1 Podテンプレート 8.4.2 Label 8.5 ReplicaSetの作成 8.6 ReplicaSetの調査 8.6.1 Podからの ReplicaSetの特定 8.6.2 ReplicaSetに対応する Podの集合の特定 8.7 ReplicaSetのスケール 8.7.1 kubectl scaleを使った命令的スケール 8.7.2 kubectl applyを使った宣言的スケール 8.7.3 ReplicaSetのオートスケール 8.8 ReplicaSetの削除 8.9 まとめ 9章 DaemonSet 9.1 DaemonSetスケジューラ 9.2 DaemonSetの作成 9.3 特定ノードに対する DaemonSetの割り当ての制限 9.3.1 ノードへの Labelの追加 9.3.2 ノードセレクタ 9.4 DaemonSetの更新 9.4.1 個別の Podの削除による DaemonSetの更新 9.4.2 DaemonSetのローリングアップデート 9.5 DaemonSetの削除 9.6 まとめ 10章 Job 10.1 Jobオブジェクト 10.2 Jobのパターン 10.2.1 1回限り 10.2.2 一定数成功するまで並列実行 10.2.3 並列実行キュー 10.3 まとめ 11章 ConfigMapと Secret 11.1 ConfigMap 11.1.1 ConfigMapの作成 11.1.2 ConfigMapの使用 11.2 Secret 11.2.1 Secretの作成 11.2.2 Secretの使用 11.2.3 プライベートDockerレジストリ 11.3 命名規則 11.4 ConfigMapと Secretの管理 11.4.1 一覧表示 11.4.2 作成 11.4.3 更新 11.5 まとめ 12章 Deployment 12.1 最初の Deployment 12.1.1 Deploymentの仕組み 12.2 Deploymentの作成 12.3 Deploymentの管理 12.4 Deploymentの更新 12.4.1 Deploymentのスケール 12.4.2 コンテナイメージの更新 12.4.3 ロールアウト履歴 12.5 Deployment戦略 12.5.1 Recreate戦略 12.5.2 RollingUpdate戦略 12.5.3 サービスの正常性を確保するゆっくりしたロールアウト 12.6 Deploymentの削除 12.7 まとめ 13章 ストレージソリューションとKubernetesの統合 13.1 外部サービスのインポート 13.1.1 セレクタのないService 13.1.2 外部サービスの制限:ヘルスチェック 13.2 信頼性のある単一 Podの実行 13.2.1 MySQLの単一Podでの実行 13.2.2 動的ボリューム割り当て 13.3 StatefulSetを使ったKubernetesネイティブなストレージ 13.3.1 StatefulSetの特徴 13.3.2 StatefulSetを使った MongoDBの手動レプリケーション設定 13.3.3 MongoDBクラスタ構築の自動化 13.3.4 PersistentVolumeと StatefulSet 13.3.5 最後のポイント : Readiness probe 13.4 まとめ 14章 実用的なアプリケーションのデプロイ 14.1 Parse 14.1.1 前提条件 14.1.2 parse-serverの構築 14.1.3 parse-serverのデプロイ 14.1.4 Parseのテスト 14.2 Ghost 14.2.1 Ghostの設定 14.3 Redis 14.3.1 Redisの設定 14.3.2 Redisの Serviceの作成 14.3.3 Redisのデプロイ 14.3.4 Redis Clusterを触ってみる 14.4 まとめ 付録A Raspberry.Piを使った Kubernetesクラスタ構築 A.1 パーツ一覧 A.2 イメージの書き込み A.3 マスタの起動 A.3.1 ネットワークのセットアップ A.3.2 Kubernetesのインストール A.3.3 クラスタのセットアップ A.4 まとめ 訳者あとがき 索引