Kubernetes 認定資格(CKA)でよく使いそうなコマンド等のメモ

はじめに

2021 年の年末から Kubernetes 認定資格(CKA)のお勉強を本格的に開始しました。この記事は、資格対策講座で勉強しながら”これ試験でも使いそう...!!”と思ったものを自分のためにメモしていくものです。(※随時追記します)

alias etc.

試験が始まったら、まずこれ。他にもありそうだけど、個人的には一旦これで十分な気がしている。

bash シェルにコマンド補完を設定する。

source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc

エイリアスを設定する。

alias k=kubectl
complete -F __start_kubectl k

ちなみに、Kubernetes の公式ドキュメントのチートシートに記載があるので、試験本番中も閲覧可能。

--dry-run=client -o yaml は、めちゃ使うので、環境変数とかで設定しておくと良さそう。

export do="--dry-run=client -o yaml"
# この辺はお好みで...
export oj="-o json"
export oy="-o yaml"
export ow="-o wide"

ついでに、.vimrc に以下の設定をしておく。

set tabstop=2
set expandtab
set shiftwidth=2
set autoindent
set number
set ignorecase

コマンド

とにかく時間が足りないらしいので、極力 Manifest を手書きで書くことは避ける。

Pod の作成

そのまま、作成する場合

k run <pod-name> --image=<image-name>

一旦、YAML 形式で出力してから手直しする場合(securityContext や toleration など kubectl のオプションに含まれていない設定を行う場合)

k run <pod-name> --image=<image-name> --dry-run=client -o yaml > <file-name>

リソースの作成

ここで指しているリソースは以下の通り。特に、clusterrole, clusterrolebinding, deployment, namespace, role, rolebinding, secret, service, serviceaccount 辺りはよく使うのでヘルプしなくてもある程度は使えるようになっておいた方がいい。

  • clusterrole
  • clusterrolebinding
  • configmap
  • cronjob
  • deployment
  • ingress
  • job
  • namespace
  • poddisruptionbudget
  • priorityclass
  • quota
  • role
  • rolebinding
  • secret
  • service
  • serviceaccount

そのまま作成する場合

k create <resource-name> ...

一旦、YAML 形式で出力してから手直しする場合

k create <resource-name> --dry-run=client -o yaml > <file-name>

この Pod どの Node に配置されてる?

-o wide で OK

k get po -o wide

ラベル付きで Pod の一覧を出力したい

Network Policy の設定等の際に、ラベル付きで一覧表示したいときに使う。

--show-labels でOK

k get po --show-labels

ここの Manifest どう書くんだっけ...?

ドキュメントに記載の Manifest を参照するか、 一部分だけ分からないなら explain で調べる。

k explain po.spec

ブックマーク

CKA では試験中にドキュメントを参照できます。一応サイト内に検索機能はあるのですが、本番中に許可されていないサイトへのリンクも含まれているためちょっとリスキーです。そのため、基本は自分のブックマークから飛ぶと良いでしょう。(と言いつつ、私は普通にサイト内検索しまくりましたが...)一応、当日はこんな感じのブックマークを作成していました。ほとんど使わなかったけど... ご参考までに。