Kubernetesのリソース - YAML
YAMLとは?
"Ain’t Markup Language"の略、インデントで構造化データを表現し、ソフトウェアの設定ファイルや異なるソフトウェア間のデータ交換などで使われる。
特徴
- リスト・ディクショナリから成り立っていてる
- インデントを用いた階層構造表現
- インデントにはタブが使えずスペースのみ使用可能でスペース2個単位でインデントすることが多く、推奨されている
YAMLの基礎
Key Value Pair
Array/List ※-(ダッシュ)とスペースを入れて要素を記入
Array/List ※2スペース無くても良い
Dictionary/Map ※インデント1つか2必要、タブはダメ
タブの場合、閲覧するエディタによって異なる書式で表示される場合がある為
※注意点
Dictionary/Mapの場合、構成要素の並び順は関係なく、List/Arrayの並びは固定となるので注意。
以下のDictionary/Mapは 同じ。
以下のArray/Listは同じではない。
guestmembersをkeyとしてリスト形式で一列事の情報をディクショナリでまとめた場合はどうなるか?
Kubernetesのリソース
Kubernetes ではリソース管理、スケーリングや更新など、アプリケーションのデプロイを管理するため、YAMLでリソースの設定を管理している。
リソースの例↓
apiVersion
- どのバージョンのKubernetesAPIを利用してオブジェクトを作成するかkind
- どの種類のオブジェクトを作成するかmetadata
- オブジェクトを一意に特定するための情報、文字列のname
、UID
、また任意のnamespace
が該当するspec
- オブジェクトの望ましい状態
参考サイト>>> Kubernetesオブジェクトを理解する
以下imageはListになっている為、1つ目のイメージとなる。
Dictionary/Mapの場合、構成要素の並び順は関係ない為、以下2つの定義ファイル内容は同じである。ファイルをダンプし、比較する場合、要注意。