技術書典 応援祭でkubectl完全逆引きリファレンスを頒布します

3/7のから始まる技術書典 応援祭で 「kubectl完全逆引きリファレンス」を頒布します。


https://techbookfest.org/product/5767351924424704

kubectlの様々なコマンドを、実際にやりたいことから逆引きが出来る本です。
Kubernetesを始める際、運用していく際に手元に置いておく事で安心の一冊になっています1

Podの操作はもちろんのこと、スケールアップ・ダウンしたいときやクラスターの外部に公開する場合、Nodeを停止したい場合など様々な利用シーンから、対応するkubectlコマンドの逆引きができるようになりました。

形式は紙+電子で、とらのあなでも販売しています。
https://ec.toranoana.jp/tora_r/ec/item/040030816901/
電子版のみはBOOTHでも販売中です。
https://ota42y.booth.pm/items/1854936

また、OpenAPI 3を完全に理解できる本、Microservices architecture よろず本 その三、およびその一&その二も電子版を販売中です。 これらはBOOTHでも販売中ですので詳しくはこちらを見てください

「Microservices architecture よろず本 その三」に関しては紙の在庫もあり、とらのあなで販売中です2
https://ec.toranoana.jp/tora_r/ec/item/040030721446/

目次やサンプル

「kubectl完全逆引きリファレンス」の目次やサンプルは以下になります。

前書き

第1 章はじめに
1.1 kubectl の概要
1.2 この本の構成
1.3 kubectl のセットアップ
1.3.1 バイナリファイルを直接取得する
1.3.2 パッケージマネージャーを利用する

第2 章kubectl の基本
2.1 kubectl のコマンド仕様
2.2 簡単な例
2.3 コマンド一覧
2.4 共通オプション
2.5 出力オプション

第3 章リソースを操作する
3.1 リソースとはなにか
3.2 リソースを表示する(get)
3.2.1 ネームスペースのPod を表示する
3.2.2 すべてネームスペースのDeployment を表示する
3.2.3 表示する情報を抑制する
3.2.4 ラベルを表示する
3.2.5 ラベルで表示するリソースを絞り込む
3.2.6 任意のフィールドで表示するリソースを絞り込む
3.2.7 より詳細な情報を表示する
3.2.8 リソースをJSON/YAML で出力する
3.2.9 リソースの変化を監視する
3.3 リソースを作成する(create)
3.4 リソースの一部を更新する(set)
3.4.1 環境変数を更新する
3.5 ラベルを変更する(label)
3.5.1 ラベルを設定・更新する
3.5.2 ラベルを削除する
3.6 アノテーションを付ける(annotate)
3.6.1 新しいアノテーションを設定する
3.6.2 アノテーションを削除する
3.7 リソースを削除する
3.7.1 指定したConfigMap を削除する
3.7.2 指定したネームスペースのリソースをすべて削除する
3.7.3 すべてのネームスペースのリソースをすべて削除する
3.7.4 リソースが生成したリソースも削除する・削除しない
3.8 リソースの詳細情報を表示する(describe)
3.9 リソースが特定の状態になるまで待つ(wait)
3.10 クラスタで使えるリソースや短縮表記を表示する(api-resources)

第4 章定義ファイルに関するコマンド
4.1 Kubernetes の定義ファイル
4.2 定義ファイルを用いてリソースを作成・変更する(apply)
4.3 クラスタ上のリソースの定義を編集する(edit)
4.4 定義ファイルを用いてリソースを削除する(delete)
4.5 リソースから定義ファイルを作る
4.6 クラスタ上の定義と比較する(diff)
4.7 クラスタ上のリソース定義の一部を変更する(patch)
4.8 リソースを置き換える(replace)

第5 章Pod やコンテナを操作する
5.1 Pod を作る
5.1.1 定義ファイルからPod を作る・変更する(apply)
5.1.2 CLI からPod を作る(run)
5.2 起動しているプロセスにアタッチする(attach)
5.3 Pod 内のコンテナでコマンドを実行する(exec)
5.4 ファイルの送受信を行う(cp)
5.5 ログを表示する(logs)
5.6 Port を手元のマシンと繋げる(port-forward)
5.7 CPU/メモリの状態を表示する(Top)
5.8 Pod を削除する(delete)

第6 章複数のPod を作るリソースに対するコマンド
6.1 定義ファイルからリソースを作成・更新する(apply)
6.1.1 Deployment
6.1.2 DaemonSet
6.1.3 StatefulSet
6.1.4 Job
6.1.5 CronJob
6.2 CLI からリソースを作る(run)
6.2.1 Deployment
6.2.2 Job
6.2.3 CronJob
6.3 削除する(delete)
6.4 起動したPod にコマンドを実行する

第7 章ロールアウトに関するコマンド(rollout)
7.1 配下のPod をすべて再起動する(restart)
7.2 状態の確認をする(status)
7.3 履歴を確認する(history)
7.4 ロールアウトを一時停止する(pause)
7.5 ロールアウトを再開する(resume)
7.6 ロールバックする(undo)

第8 章スケールイン・スケールアウトに関するコマンド
8.1 起動するPod の数を変更する
8.1.1 設定ファイルから変更する(apply)
8.1.2 CLI から変更する(scale)
8.2 水平オートスケーリングを設定する
8.2.1 定義ファイルから設定する(apply)
8.2.2 CPU によるオートスケールをCLI で設定する(autoscale)

第9 章Service に関するコマンド
9.1 定義ファイルからService を作成・更新する(apply)
9.2 CLI からService を作る(expose)

第10 章ConfigMap に関するコマンド
10.1 定義ファイルから作成・更新する(apply)
10.2 ファイルから作成する(create)

第11 章Node に関するコマンド
11.1 Node を取得する(get)
11.2 Node でのPod の新規実行を止める(cordon)
11.3 Node で動いているPod をすべて消す(drain)
11.4 Node でPod を起動できるようにする(uncordon)
11.5 CPU/メモリ/ストレージの状態を表示する(top)
11.6 指定したPod 以外を配置できなくする(taint)

第12 章認証・認可に関するコマンド
12.1 証明書署名要求を承認・否認する(certificate)
12.1.1 証明書署名要求を承認する(approve)
12.1.2 証明書署名要求を否認する(deny)
12.2 Role/ClusterRole を作成・設定する
12.2.1 apply を利用する
12.2.2 create を利用する
12.2.3 reconcile を利用する
12.3 コマンドやリソースに対してアクセス可能か調べる(can-i)

第13 章クラスタに関するコマンド
13.1 クラスタやkubectl のバージョンを確認する(version)
13.2 クラスタの情報を確認する(cluster-info)
13.3 クラスタの詳細情報を保存する(dump)
13.4 API サーバへのproxy を建てる(proxy)

第14 章config に関するコマンド
14.1 現在のコンテキストを確認する(current-context)
14.2 コンテキストを表示する(get-contexts)
14.3 現在のコンテキストを変更する(use-context)
14.4 利用するconfig ファイルを変更する
14.5 config ファイルを表示する(view)
14.6 クラスタをすべて表示する(get-clusters)
14.7 クラスタを登録する(set-cluster)
14.8 クラスタの情報を削除する(delete-cluster)
14.9 認証情報を設定する(set-credentials)
14.10 コンテキストを登録する(set-context)
14.11 コンテキストの名前を変更する(rename-context)
14.12 コンテキストを削除する(delete-context)
14.13 任意の値を登録・変更する(set)
14.14 任意の値を削除する(unset)

第15 章その他
15.1 シェルでの補完を有効にする(completion)
15.2 kustomize を利用する(kustomize)
15.3 プラグイン一覧を表示する(plugin list)
15.4 アルファ版機能を利用する(alpha)
15.5 本書では取り扱わないコマンド

付録A 利用例:Pod が起動しない理由を調べる

付録B kustomize を活用する
B.1 kustomize でConfigMap を設定する
B.2 環境によって値を変更する

付録C Kubernetes のリソース定義の調べ方

正誤情報

紙版に対する正誤情報です。電子版は修正済みです。

  • p24 第二段落

    • --resoruce-version--resource-versionのtypoです
  • p21

    • 「3.2.8 リソースをJSON/YAMLで出力する」の出力結果を正しい結果にしました

  1. 実際に自分がKubernetesを始めたときに困ったので、そういう時に解決するための一冊です ↩︎

  2. 専売とついてませんが設定忘れただけで紙はここでのみ手に入ります。 ↩︎