DevOps-KubernetesはてなブックマークTwitterスポンサーリンクはじめに以下の記事にてKubernetesについて超入門記事を書きました。本記事ではもう少し技術的な観点でKubernetes、通称k8sを説明します。具体的に解説するキーワードは以下です。クラスタマニフェストマスタポッドKubernetesのアーキテクチャあえてざっくり言うならば、k8sはクラスタマニフェストの二つを構成要素として捉えることができます。クラスタとは、k8sが管理するマシンの集合です。ここでいうマシンとは、いわゆる一意のホスト名を持つサーバです。マニフェストとは、クラスタの状態を指定する定義ファイルです。クラスタとマニフェストそれぞれの詳細を見ていきます。クラスタとは?上の図にもある通り、クラスタとはマシンの集合です。このマシンは物理サーバでも仮想マシンでも構いません。このマシンはk8sの世界では役割によって二つに分類できます。一言でいえば、クラスタ全体の管理を担うマシンがマスタで、それ以外のdocker等が起動しているマシンがノードです。ちなみにこれらは役割なので、マスタ上でdockerを動かしてノードとして捉えることももちろん可能です。クラスタはマスタとノードで構成されるノードはdockerが起動しているマシンなのでイメージがつくかと思いますが、マスタはk8sで登場する概念なので少し補足します。マスタはクラスタを管理するための情報を外部に公開します。ユーザはマスタに対して操作コマンドを投入してクラスタ構成を変更できます。その操作コマンドがよく見るkubectlです。createでマスタに対して投入すればどこかのノードで一台コンテナが立ち上がります。マニフェストにその情報を記載してマスタに適用することで同様の操作が可能です。マニフェストとは?マニフェストはYAMLやJSONでクラスタの状態を記載したテキストファイルです。こちらの情報を元にk8sはコンテナの状態を管理するので、Chefでいうreceipeに当たります。一例に公式ページに掲載されているサンプルのyamlファイルは以下です。applyでマスタに適用することでnginxが起動されます。そんな上記ファイルの中に「pod」という文言がありますが、Podとはコンテナの集合です。この集合で何が管理されているのかと言えば、同一のPodに属するコンテナは同一のマシンに起動し、ネットワークインターフェースやストレージ割り当てを共有します。このような仕組みにより、各コンテナを最小にしながら、関わりが深い機能を持つコンテナをグループで管理することが可能になります。ちなみに、k8sではPodを最小単位として扱いますが1コンテナ1Podという紐づけも可能です。終わりに上記の用語をまとめると以下の図になります。ノードに展開されるPod集合つまり、マニフェストをマスタに反映することで各ノードにPodが展開されることでサービスが提供されます。k8sとは、簡単に言えばPodを適切に管理するツールとも言えます。このPodを取り巻く用語にはまた色々あるのですが、それについては別記事で触れたいと思います。以上、k8sのアーキテクチャ入門記事でした。Page引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。