本連載ではKubernetesの簡単な説明からはじまり、開発者の方にとってKubernetesを利用することで何が嬉しいのか、どのように開発フローが変わっていくのかについて、イラストを交えながら紹介します。この回ではKubernetesを利用する際によく登場する「Pod」や「Service」などの用語について説明します。また、ドキュメントを参照しながらマニフェストが読めるようになることを狙いとします。

まず連載第1回の簡単な復習をしましょう。Kubernetesはコンテナを本番で運用するために便利な機能をたくさん備えています。Kubernetesではリソースを作成することでコンテナを起動したりネットワークの設定を行ったりします。リソースを扱うためにはマニフェストを利用することがほとんどであるため、マニフェストの読み書きができるようになることがKubernetesを利用するための第一歩です。
コンテナ起動を例にしたマニフェストの解説

Kubernetesでは、クラスタ上でコンテナを起動したり、ネットワークを設定したり、あらゆる操作をKubernetes APIサーバを通してリソースを登録・作成することにより実行します。例えば「NGINXのコンテナを起動したい」と言った時にはKubernetes APIサーバにマニフェストを添付したリクエストを送信し、Kubernetesクラスタはマニフェストを解読し、Podオブジェクトを作成、実際にコンテナを起動……といったことを行います(詳細なアーキテクチャについては後ほど説明します)。
ではKubernetesのマニフェストはどのようなものなのか、具体的にみていきましょう。

マニフェストはYAMLで書くことが多いですが、JSONで書くことも可能です(CLIを利用してYAMLからJSONに変換しているだけで、APIサーバへのリクエストはJSONで行われます)。
これはNGINXのコンテナを起動するためのマニフェストです。KubernetesではコンテナをPodというリソースを利用してデプロイします。
ここで例示されているマニフェストは大枠としては以下のように分かれています。
| フィールド | 概要 |
|---|---|
| apiVersion | 利用するAPIのバージョン |
| kind | 作成するリソースの種類 |
| metadata | 作成するリソースにつける名前などのメタデータ |
| spec | 作成するリソースの仕様 |
metadata、apiVersion、kindは各リソース共通の必須入力項目です。今回はPodを例に出しましたが、共通項目に関しては他のリソースの読み書きする際にも重要になってくるので覚えておいてください。
Pod用マニフェスト各項目に関しての詳細な仕様を知りたい場合は以下のドキュメントを参考にしてください。
この記事は参考になりましたか?
- この記事の著者
-
あおい(アオイ)
大手メーカーにてソフトウェアエンジニアエンジニアを経て2019年7月サイボウズ株式会社にSREとして入社。 現行インフラ基盤上のアプリケーションを新インフラ基盤(Kubernetes)に移行するプロジェクトが主な仕事です。著書は、「まんがではじめるKubernetes」など。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
