はじめに
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 では試験中にドキュメントを参照できます。一応サイト内に検索機能はあるのですが、本番中に許可されていないサイトへのリンクも含まれているためちょっとリスキーです。そのため、基本は自分のブックマークから飛ぶと良いでしょう。(と言いつつ、私は普通にサイト内検索しまくりましたが...)一応、当日はこんな感じのブックマークを作成していました。ほとんど使わなかったけど... ご参考までに。
- kubernetes_ja - top
- kubectlチートシート | Kubernetes
- Kubectl Reference Docs
- kubeadmを使用した高可用性クラスターの作成 | Kubernetes
- 永続ボリューム | Kubernetes
- DaemonSet | Kubernetes
- Node Affinityを利用してPodをノードに割り当てる | Kubernetes
- Upgrading kubeadm clusters | Kubernetes
- Operating etcd clusters for Kubernetes | Kubernetes
- Configure a Security Context for a Pod or Container | Kubernetes
- Certificate Signing Requests | Kubernetes
- Configure Service Accounts for Pods | Kubernetes
- コンテナの環境変数の定義 | Kubernetes
- ネットワークポリシー | Kubernetes