killer.sh(CKA Simulator)をやってみた感想
kubernetes
はじめに
Linux Foundationにて、CKA受検資格を購入すると2回分のKiller Shellでの模試がついてくる。
実際に解いてみたので全体的な所感と各問題の概要を書く
問題文は記載していないので大丈夫でしょう
全体的な所感
各問題はそこまで難しくないがとにかく時間が足りない。本番でも少しでも悩んだらとりあえず次の問題に取り掛かることが大事だと思い知らされる。
もしくは、もっと早く解けるようになるまで理解度を深める必要があると感じた。本試験は1月末受験予定だが、少し不安になったw
問題の中には嫌らしいなと感じる問題もあった。「StaticPodを削除せよ」とあったので何か方法があるのかと邪推したら、シンプルに/etc/kubernetes/manifestから移動させるだけだったw
CKA学習教材として評判の良いUdemyの「Certified Kubernetes Administrator (CKA) with Practice Tests」をやっていれば基本的に問題ないと感じたが、
ヘルスチェックやAffinityは+αで知っておくべきかも。
また、採点について大問ごとに正誤ではなく、細かく採点がポイントがあったのだが本番も同様なのだろうか。
各問題
- contextsを取得する問題
kubectlで取得する方法と~/.kube/comnfigを見る方法
shの問題になっていた。名前だけ取得するのに時間がかかった - コントロールプレーンにpodを配置する問題
nodeSelectorとtolerationを駆使する必要があった
コントロールプレーンにtaintが付与されているので。 - Podをスケールダウンする問題
StatefulSetであることを気づく必要があった - Podを作成する問題
livenessProbeとReadinessProbeが登場
Readiness Probe=コンテナがトラフィックを受け入れられる状態であるかを認識 - ソートしてpod一覧を取得する問題
簡単 - PV、PVCの作成
特徴なし - メトリクス取得問題
containersのメトリクスも取得する必要があったこと - コントロールプレーンの情報を取得する問題
基本的な情報を知っていれば余裕 - 手動でpodを配置する問題
schedulerを削除するのはシンプルに/etc/kubernetes/manifest配下のファイルを移動させることだったのがいやらしかった
手動でpodを配置する場合は「nodeName」を指定 - RBACの問題
特徴なし - DeamonSet作成問題
コントロールプレーンに配置するためにtolerationが必要 - DeamonSetみたいなDeployment作成問題(難)
podAntiAffinityもしくはtopologySpreadConstraintを使う必要あった - マルチコンテナーのPodを作成問題
pod情報をfieldRefによって取得 - クラスタ情報を取得する問題
コントローンプレーンのapiServerの情報みたり、ネットワークのCNI名とファイルを取得する必要あり - イベントを取得する問題
kubectl get eventsというコマンドがある
podやコンテナを殺してログをみる
コンテナはプロセスIDを特定する必要があった - api-resource取得、一番Roleの多いnamespace取得問題
k api-resources –namespaced -o name - crictlを駆使する問題
crictlはコンテナの情報を取得するのによく使う - kubelet修復問題(難)
シンプルにsystemctl statusで状態調べる
Drop-Inでconfファイルの場所を特定
配置ファイルはこれ /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
kubeletの配置先が間違っていた - Secret取得問題(難)
sleepしなきゃいけない謎
busyboxだから参照する前に消える? - kubernetes nodeのアップデートとjoin
joinをする必要あり - StaticPod作成問題
特徴なし - 証明書の期限を取得する問題
openssl x509 -noout -text -in XXX このコマンドはドキュメントを探せば載っている
更新は kubeadm certs renew apiserver - cert情報取得
22と似ている - NetworkPolicy作成問題
特徴なし - etcd操作問題
バックアップとリストアの基本的な問題