KubernetesとRancher

Kubernetesを実際に使う前に、Kubernetesがどのようにしてコンテナを管理するのか、その仕組みを理解しておきましょう。また、Kubernetesのセットアップなどを行いやすくする「Rancher」についても、その概要を紹介します。

 

 

■Kubernetesのこれまで

■Kubernetesでのコンテナ管理の仕組み

■Kubernetes環境を手軽に構築する「Rancher」

 

 

■Kubernetesのこれまで

まず、Kubernetesのこれまでについて、簡単にまとめておきましょう。

前回解説したように、現在ではコンテナを利用したサーバー運用が増えていて、コンテナを管理するためのオーケストレーションツールが重要になっています。

Kubernetesは、そのようなニーズにこたえるために開発されました。

「Kubernetes」は聞きなれない単語ですが、ギリシャ語で「船の舵取り」を意味する言葉だそうです。(ちなみに、Kubernetesのロゴでは舵の絵が使われています)。また、英語での発音をカタカナで書くと「クバネテス」が近いようです。

 

2013年にGoogleでプロジェクトがスタートし、開発が進められました。その後、「Cloud Native Computing Foundation」(CNCF)という団体に移管され、現在ではGoogle以外のクラウドベンダーも開発に参加しています。

2017年頃からは、Kubernetesは勢いを増しました。Googleのクラウドだけでなく、Microsoftの「Azure」やAmazonの「AWS」など、主要なクラウドサービスでもKubernetesの採用が進みました。また、Docker社はオーケストレーションツールとして「Docker Swarm」を提供していますが、2017年10月にはKubernetesもサポートすることを発表しました。

このような流れがあり、現在ではKubernetesはオーケストレーションツールのデファクトスタンダード(事実上の標準)になりつつあります。

 

 

■Kubernetesでのコンテナ管理の仕組み

Kubernetesを実際に使う前に、今回はKubernetesでのコンテナ管理の仕組みについて、概要を解説します。

 

・ノードとマスター

Kubernetesでは、複数のサーバーからなるクラスタに対して、コンテナの作成/起動/終了/削除などの管理を行うことができます。ここで、まず「ノード」(Node)と「マスター」(Master)という用語が登場します。

マスターには、Kubernetesの本体などのソフトをインストールします。また、マスターとノードはネットワークで接続し、両者の間の通信はKubernetes API(Application Programming Interface)によって行います。

 

 

図1 マスターとノード

図1 マスターとノード

 

・コンテナとPod

次のKubernetes独自の用語として、「Pod」があります。

Podとは、1つ以上のコンテナの集合のことです。Kubernetesでは、コンテナの起動/終了/削除などの処理を、Podを単位として行うようになっています。「1つ以上のコンテナ」なので、1つのPodにコンテナが1つだけ含まれる場合もありますし、多数含まれる場合もあります。例えば、WebサーバーのnginxのコンテナだけのPodを作ったり、nginxとMySQLの2つのコンテナを含むPodを作ったりすることができます。

同じPodに含まれるコンテナは、同じノードに配置され、IPアドレスなどの資源を共有します。

 

 

図2 コンテナとPod

図2 コンテナとPod

 

・デプロイメントとレプリカセット

デプロイメント(Deployment)は、アプリケーションのデプロイ(起動など)の管理を行うものです。次のような機能を持っています。

 

①アプリケーション起動の際に「レプリカセット」

②Podのアップデートの管理

③アップデートで問題が起こった時の、旧バージョンへの復帰(ロールバック)の管理

 

また、レプリカセット(ReplicaSet)は、Podの数のコントロールを行うものです。アプリケーションの起動時に指定された数のPodを起動したり、Podがダウンしたときに代わりのPodを起動したりといった処理を行います。

 

・ボリューム

Dockerのコンテナは、終了するとその中のファイルも削除され、起動前の状態に戻ります。そのため、ファイルを保存しておきたい場合は、コンテナの外に保存する必要があります。

このような、コンテナ外にあるファイルの保存場所のことを、「ボリューム」(Volume)と呼びます。多くの場合、Podには何らかのボリュームを結び付けて、ファイルを保存できるように設定します。ボリュームに割り当てられるストレージとしては、ノードのハードディスクや、NFS(ネットワークファイルシステム)、クラウドストレージなどがあります。

 

 

■Kubernetes環境を手軽に構築する「Rancher」

Kubernetesはコンテナの管理に威力を発揮しますが、使い始めるにはまずKubernetes自身をマスターやノードにインストールすることが必要です。自力でインストールすることは可能ですが、作業には手間と時間がかかり、決して簡単だとは言えません。

この問題を解決するソフトとして、「Rancher」があります。Rancherは、アメリカのRancher Labs社が開発しているソフトで、オーケストレーションツールの一種と言えます。

Kubernetesのクラスタを管理する機能があり、Webブラウザの画面上で、Kubernetesのノードのセットアップや、状態のチェックなどの作業を、比較的簡単に行うことができます。

 

WebARENA コンテナサービスでは、Rancherがインストールされた状態のサーバーが提供されます。そのため、Kubernetes環境のセットアップを簡単かつ短時間で行うことができます。

 

 

 

 

 

うちだ
サービスクリエーション本部所属        (監修:とみなが)       

オススメ記事