このドリルの使い方など
- k8s環境で実際に指を動かすドリルです。
- k8sの基礎部分を学習しながらこのドリルを反復演習することで、k8sの基本操作に明るくなる事を目的としています。
学習環境の構築
- 環境についてはご自分でご用意下さい。
- ローカルで環境構築したい場合はよろしければ以下をご参照下さい。
- ローカルにk8s環境を作れるほどリソースがないかも・・・という方は、k3sを使うのも良いでしょう。ただし、一部実機では確認できない問題がでて来ます。
kubectlコマンド
- k8sは基本的に
kubectlというコマンドを利用します。 -
kubectlコマンドは大抵、get、createなどのサブコマンドと併せてkubectl getなどのように実行します。 - サブコマンドだけでは操作対象が決まらないため、
kubectl get podのようにリソースタイプを指定します。 - 基本的な構文は以下の通りです。
kubectl <サブコマンド> <リソースタイプ> [リソース名] [オプション]
| 要素 | 例 | 説明 |
|---|---|---|
| サブコマンド |
get create delete describe apply
|
操作の種類 |
| リソースタイプ |
pod ns node svc
|
操作対象のリソース |
| リソース名 |
ckatest test-pod
|
特定のリソースを指定(省略時は一覧) |
| オプション |
-n -A -o
|
動作を調整するフラグ |
- 例えば以下のように実行します。
kubectl get pod test01 -n ckatest
dry-runオプション
リソースを作成するときにyamlファイルから作成する事がありますが、yamlをゼロから記載してリソースを作成するのは大変です。そのためコマンドでyamlファイルのひな形を作り、それを編集して求めるyamlファイルを作るという手法を覚えておきましょう。
--dry-run=client -o yamlをコマンドに付けることで、実際にリソースを作成せずにyamlの内容だけを出力できます。
例えば以下のコマンドを実行すると:
kubectl create ns ckatest --dry-run=client -o yaml
以下のようなyamlが出力されます。
apiVersion: v1
kind: Namespace
metadata:
creationTimestamp: null
name: ckatest
spec: {}
status: {}
このままでは出力されるだけなので、>でファイルに書き出します。
kubectl create ns ckatest --dry-run=client -o yaml > ckatest-ns.yaml
あとはこのファイルを編集してkubectl apply -fで適用するだけです。
kubectl apply -f ckatest-ns.yaml
ポイント・解説など
-
--dry-run=clientは実際にリソースを作成しないオプションです。 -
-o yamlはyaml形式で出力するオプションです。 - yamlをゼロから書くよりこのテクニックで雛形を生成して編集する方が大幅に時間を節約できます。
kubernetes.io
何も見ずにすぐに問題が解けるくらいに全てを覚えれば問題ありませんが、少しでも引っかかる問題がある場合はkubernetes.ioですぐに該当ドキュメントを引けるようになりましょう。
helpとexplain
コマンドの使い方やリソースの書き方をど忘れしてしまった時のために、すぐにhelpやリソースの書き方を調べられるようにしておきましょう。試験時に焦らないように慣れておくといいと思います。
helpはだいたい以下のように最後に--helpを付けることで表示する事ができます。
kubectl create --help
リソースはkubectl explain <リソース名>コマンドで以下のように確認する事ができます。
kubectl explain pod
特定のフィールドを見たい時はkubectl explain <リソース名>.<フィールド名>コマンドで以下のして確認する事ができます。
kubectl explain pod.spec.containers
エディタへの習熟
kubectlではyamlファイルを作成し、それを編集する作業を行うため、viエディタを利用します。最低限、ファイルを開く、内容を修正する、ファイルを閉じる。という操作はできるようにしましょう。
ドリルが終わったら
このドリルは何度も反復する事を想定しています。ドリル中には作成したオブジェクトを削除させるものもありますが、そのまま放置しているものもあります。ドリルをやり終わったら、kubectl get all -Aを実行して、ドリルで作成したリソースを確認して、すべて削除してから取り組むようにしてください。
あるいは次回ドリル開始時にやるのでもいいかもしれません。
リンク
なるべく早く追加していきます