ポケットリファレンスシリーズKubernetesポケットリファレンス
2019年11月16日紙版発売
2019年11月16日電子版発売
岡本隆史,佐藤聖規,岩成祐樹,正野勇嗣,村上大河 著
四六判/416ページ
定価3,278円(本体2,980円+税10%)
ISBN 978-4-297-10957-8
書籍の概要
この本の概要
コンテナの基盤技術として標準の地位を獲得したKubernetesが,「ポケットリファレンス」シリーズに登場。
近年コンテナ技術への注目が高まり,実プロジェクトへの普及が進んでいます。本書では,Kubernetes初のリファレンス本として,kubectlのコマンドとリソースを網羅的に解説。また,入門者向けのDockerの基本やKubernetesの導入はもちろん,リファレンスだけではカバーできない実践的な使用方法やよくあるエラーとトラブル対処法も押さえました。
さらに,折り込み付録としてKubernetes利用の全体像を俯瞰できる「チートシート」を収録。初心者から上級者まで,Kubernetesを使う開発者にとって必携の1冊です。
こんな方におすすめ
- これからKubernetesを利用しようとしている初心者
- Kubernetesを利用している中〜上級者
- Kubernetesのコマンドやリソースにつまづきがちな方
著者の一言
私は,Kubernetesは嫌いでした。
ちょっとKubernetesを試してみようと思ってもクラスターを構築するのが大変ですし,クラスターでPodが起動できたと思ってもネットワークがつながらないし,ノードに障害が発生するとPod上のデータは消えてしまうし......。
これらは過去の話で,今はGKEやAKSをはじめとしたマネージドサービスで簡単にKubernetesを構築できます。自前で構築する場合でも,いくつかのKubernetesをサポートしたインストーラや,PC 1台でオールインワンで使えるツールが提供されています。インターネットや書籍でたくさんの情報も提供されているので,トラブルで悩むことも,以前に比べれば各段に減ったでしょう。しかしながら,そのたくさんの複雑なリソースを覚えなければならない点や,コマンドラインのkubectlを覚えないといけない課題は,依然として残っています。
本書では,Kubernetes操作の要となるkubectlコマンドとKubernetesのリソースについて,リファレンスとして網羅的に説明しつつ,Kubernetesとその前提となるDockerの基本的な使い方,リファレンスだけではカバーできない実践的な使い方をまとめ,実用的な書籍としまとめました。また,「こうすれば動く」という内容だけでなく,エラーが発生したり,動かなかった場合のトラブルへの対処法なども処方せん的に記載しました。
入門者の方には,Kubernetesの概要をつかみつつ,ハマったときにはトラブルの対処法を見ながらの学習に,中級者くらいの方には,まれにしか使わないコマンド・リソースを確認し思い出す際に,上級者には後輩にKubernetesを教えるために,本書を活用いただければ幸いです。
(著者代表 岡本隆史,本書「はじめに」より)
この書籍に関連する記事があります!
- コンテナ技術とKubernetes
- 仮想化技術よりもクラウド環境に適した開発技術として,コンテナ技術が注目を浴びています。
目次
- はじめに
- 本書の使い方
Chapter 1:入門編
コンテナ大航海時代の新常識Kubernetes
- コンテナ大航海時代の船長Kubernetes
Kubernetesのアーキテクチャ
- Kubernetesのリソースと動作の概要
- Kubernetesの動作の仕組み
Dockerの基礎
- コンテナとは?
- インストール
- コンテナの起動
- イメージのビルド
- コマンド一覧
Kubernetesの基礎
- 環境準備
- コンテナの起動
- ネットワークの設定
- ボリューム設定
- dashboardによるKubernetesの管理
Chapter 2:実践編
コマンドリファレンス
- kubectlの概要
- リソースの作成・設定変更を行う kubectl apply
- リソースをファイルや標準入力から作成する kubectl create
- ClusterRoleBindingを作成する kubectl create clusterrolebinding
- Namespaceを作成する kubectl create namespace
- Quotaを設定する kubectl create quota
- RoleBindingを作成する kubectl create rolebinding
- 機密性の高い情報を保持するためのsecretを作成する kubectl create secret
- Service Accountを作成する kubectl create serviceaccount
- リソースを削除する kubectl delete
- リソースの情報を表示する kubectl describe
- 設定ファイルとリソースの差分を確認する kubectl diff
- マニフェストをインタラクティブに編集する kubectl edit
- リソースの説明を表示する kubectl explain
- リソースの情報を取得する kubectl get
- kustomizeからマニフェストを生成する kubectl kustomize
- リソースのフィールドを更新する kubectl patch
- リソースを置換する kubectl replace
- Delpoyment・Job・Podを作成する kubectl run
- すでに存在するアプリケーションリソースを変更する kubectl set
- 特定の条件を満たすまで待機する kubectl wait
- Serviceを作成して,外部からのアクセスを受け付ける kubectl expose
- コンテナへの接続 kubectl port-forward
- プロキシを介したREST APIアクセス kubectl proxy
- コンテナへの接続 kubectl attach
- オートスケールを管理する kubectl autoscale
- ファイルのコピー kubectl cp
- コマンドの実行 kubectl exec
- リソースの情報を表示する kubectl logs
- リソースのロールアウトを管理する kubectl rollout
- リソースのサイズを設定する kubectl scale
- Podまたはノードのリソース利用情報を確認する kubectl top
- アノテーションを設定する kubectl annotate
- シェルの補完設定を出力する kubectl completion
- クラスターの接続設定ファイルの作成・編集を行う kubectl config
- ラベルを設定する kubectl label
- TLS証明書を管理する kubectl certificate
- クラスター情報を表示する kubectl cluster-info
- ノードへのPodの割り当てを停止・再開する kubectl cordon/drain/uncordon
- NodeへのPodの割り当てを制御する kubectl taint
- 権限の確認 kubectl auth can-i
- プラグインを管理する kubectl plugin
リソースリファレンス
- Podを作成する Pod
- Podの実行数を管理する ReplicaSet
- ReplicaSetのバージョンを管理する Deployment
- 状態を持つPodを作成する StatefulSet
- Podをオートスケールする HorizontalPodAutoscaler
- Podを自動的にスケールアップする VerticalPodAutoscaler
- Podの最小動作数を定義する PodDisruptionBudget
- Jobを実行する Job
- 定期的にJobを実行する CronJob
- 各ノード上にPodを作成する DaemonSet
- サービスを公開する Service
- ホスト名でサービスにアクセスする Ingress
- ネットワーク接続を制限する NetworkPolicy
- Podの設定をリソースとして管理する ConfigMap
- 機密性が高い設定をリソースとして管理する Secret
- 永続ディスクのリクエストを管理 PersistentVolumeClaim
- 永続ディスクを作成する PersistentVolume
- ストレージのクラスを定義する StorageClass
- Kubernetesクラスター内のリソースを論理的に分離する Namespace
- コンテナリソースのデフォルト値を設定 LimitRange
- ネームスペース単位でリソースを制限 ResourceQuota
- ネームスペース単位で権限を定義する Role
- Roleとユーザーを紐付ける RoleBinding
- クラスター単位で権限を定義する ClusterRole
- ClusterRoleとアカウントを紐付ける ClusterRoleBinding
- サービスアカウントを管理する ServiceAccount
- Podのセキュリティを強化する PodSecurityPolicy
Chapter 3:応用編
スマートなコンテナイメージの作成ノウハウ
- コンテナイメージ作成のプラクティス
- コンパクトなイメージの作り方
- マルチステージビルド
- Dockerfileを作成する際のリファレンス
GitLabによるプライベートレジストリの使い方
- プロジェクトの作成
- イメージのプッシュ
- イメージのプル
- 登録したイメージをKubernetesで利用する
- イメージの自動ビルド
- Kubernetes上へのGitLabの構築
ネームスペースとRBACによるアクセス制御
- ネームスペースとは
- RBAC(Role Based Access Control)とは
Helm ChartでKubernetes アプリケーションを楽々管理
- Helmとは
- Helmクライアントのインストール
- Chartのインストールと管理
- エラーと対処法
Grafana Lokiによるログ管理
- Lokiの特徴
- Lokiのアーキテクチャ
- Lokiのセットアップ
- sidecarによるファイルのログの転送
- 参考文献
- 逆引きリファレンス
- 索引
Column
- Kubernetesアーキテクチャの補足
- Windowsのサポート
- オンプレミスで使えるKubernetesディストリビューション
- DNSアドオンのインストール
- 一般的なKubernetesクラスターへのIngress Controllerのインストール
- Imperative / Declarative object configuration
- kubectl createの便利なサブコマンド
- Helmとkustomizeの違い
- 証明書ファイルを設定ファイルから取り出す
- Podのスケジューリングを制御する
- 占有ノードの扱いを簡単にする
- kubectlのその他のコマンド
- ローカルイメージをKubernetesで利用
- Ingress Nginxの認証追加機能
- HTTPSのデバッグ
- PodSecurityPolicyとSecurity Contextの設定値の関係
- PodSecurityPolicyを有効にする方法
- マネージドKubernetesでのログの確認
- KubernetesでCI/CD
- Istio/Knativeによるマイクロサービス化の実現
- パラメータファイルの取り出し
この本に関連する書籍
-
みんなのDocker/Kubernetes
今や当たり前に使われるようになったコンテナ技術ですが,実際の利用に裏打ちされたノウハウについては未だまとまった情報がないのが現状です。そんななか本書では,現...
-
Kubernetes実践入門 プロダクションレディなコンテナ&アプリケーションの作り方
Dockerの登場以降,アプリケーションはコンテナイメージとして管理・実行できるようになりました。コンテナイメージには,アプリケーションの実行に必要な言語ランタイ...
-
Docker/Kubernetes 実践コンテナ開発入門
話題のコンテナ技術,Docker/Kubernetesの基礎から実際にアプリケーションを作るまでを解説した入門書です。Docker/Kubernetesを実際の現場で活用している著者が最新情...