Kubernetesのリソース - YAML

YAMLとは?

"Ain’t Markup Language"の略、インデントで構造化データを表現し、ソフトウェアの設定ファイルや異なるソフトウェア間のデータ交換などで使われる。

YAMLの公式サイトは>>> こちら

特徴

  • リスト・ディクショナリから成り立っていてる
  • インデントを用いた階層構造表現
  • インデントにはタブが使えずスペースのみ使用可能でスペース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 - オブジェクトを一意に特定するための情報、文字列のnameUID、また任意のnamespaceが該当する
  • spec - オブジェクトの望ましい状態

   参考サイト>>> Kubernetesオブジェクトを理解する

以下imageはListになっている為、1つ目のイメージとなる。

Dictionary/Mapの場合、構成要素の並び順は関係ない為、以下2つの定義ファイル内容は同じである。ファイルをダンプし、比較する場合、要注意。