コンテナとKubernetesはなぜ注目されるのか

2022/07/14
次世代基盤第二技術部 第一技術室

ビジネスに求められるスピード

近年、サーバ仮想化に代わる新たなITインフラとしてコンテナと、コンテナを管理する(オーケストレーションする)ツールであるKubernetesが注目を集めています。コンテナによるアプリケーション開発を採用している企業は増加の一途を辿っており、日本国内においてもKubernetesの利用が本格的に普及し始めました。

その背景には、デジタル技術の発達によりビジネスに求められるスピードが、以前よりも増していることが関係しています。現在、様々な企業がWeb上で提供されるアプリケーションサービスを使用してビジネスを展開しています。ユーザへより良い体験価値を提供するためにはアプリケーションサービスを改善していくスピードが不可欠です。それゆえ、企業は競争力を手に入れるためにITを駆使したビジネススピードの向上が求められています。例えば、アプリケーションサービスの開発をスピーディに行い、他社に先んじてアイデアを市場に投入することができれば、それだけ早くユーザに新しい体験を価値として提供することができます。一日でも早く改善したアプリケーションサービスを提供し続けることができれば、これからのビジネスで求められるスピードに近づくことが可能になります。一方、アプリケーションの開発や改善のスピードが向上しても、アプリケーションサービスを支えるITインフラが適応できていなければビジネス全体のスピードは上がりません。ビジネスのスピードを向上には、素早いアプリケーション開発と、スピードを支えられるITインフラが必要であり、それを実現できるのがコンテナとKubernetesです。

本コラムでは、ビジネスのスピード向上が求められる今、コンテナとKubernetesを使用することで何がどう変化するのかについて紹介していきます。

スムーズな機能改善の手段としてのコンテナ

コンテナは、アプリケーションを動作させる単位をコンテナとしてパッケージ化させる技術です。軽量なOSにランタイムとプログラムコードを入れてパッケージとして扱えるため、オンプレミスかクラウドかを問わず、どの環境であっても同じようにアプリケーションを稼働させることが可能です。

コンテナの特徴を活かすためには、サービスを構成する個々の機能を部品として分割します。アプリケーションサービス全体を仮想マシンに格納する手法と異なり、それぞれの機能を別々のコンテナに格納することが望ましい構成になります。また各コンテナには、APIと呼ばれる他の機能とやりとりするための窓口を作り、機能間の連携ができるようにしておきます。

 

上記の構成のように、コンテナを用いてサービスを構築すれば、サービスを構成する1つ1つの機能を部品として扱えるようになります。機能改善の必要が生じた際には、対象機能のコンテナの部分的な入れ替えで対応できます。サービスを構成するアプリケーションの機能改善のスピードが上がり、より早くユーザに新しい体験価値を提供することができるようになります。

Kubernetesによるインフラ環境の自動運用

コンテナには、アプリケーションを実行する機能はありますが、コンテナ自体を管理運用する機能はありません。複数のコンテナを管理、運用するにはコンテナオーケストレーションツールが必要であり、そのデファクトスタンダードとなっているのがKubernetesです。

Kubernetesは、コンテナを稼働させるインフラ環境の構成を宣言的に定義することができ、その状態を「あるべき姿」として維持しようとする運用管理の動作が特徴です。

 

 

上図はWebアプリケーションをコンテナで構成したサービスの代表構成例です。赤枠内ではKubernetesの宣言的な定義で「Business Logic2」の機能のコンテナを3台稼働させるように定義し、冗長性を持たせています。もし、その内の1台のコンテナが停止しても、Kubernetesが定義されている構成との乖離を検知し、あるべき姿を維持するため自動的にコンテナが再作成されます。

 

また、コンテナが利用するリソースの使用率を定義しておくと、Kubernetesは各コンテナで使用されるリソース使用率を定義された状態に近づけるように自動でコンテナの数を調整します。サービスを構成するコンテナに負荷が集中した場合には、自動でコンテナの数を増やし、負荷を分散することで、各コンテナが使用するリソースの使用率を常に一定の状態に保ちます。

 

Kubernetesは、コンテナの状態を、常に「あるべき姿」として定義した状態に保つ特徴により、自動でコンテナの状態を維持するため、これまで人が稼働していた運用にかかる負荷を削減します。その分、新しい収益を得るための構想を練ることや、新たなサービスを作成することなど、ビジネスを強化するための時間に費やせるようになります。

Kubernetes導入の課題

オープンソースであるKubernetesの導入時の構築作業は複雑なものとなります。加えて、Kubernetesは3か月ごとにマイナーリリースが実施されているため、その更新に合わせて運用していくことは容易ではありません。プラットフォームとしてKubernetesを導入し維持するためには豊富な経験やスキルが求められます。

しかし、Kubernetesを導入し維持するためにコストを割くことは、あるべき姿ではないと考えます。ソリューションを利用することで負担を減らし、速やかにKubernetes環境を手に入れることで本来の目的であるビジネスのスピードを上げるためにアプリケーションの開発や機能改善に注力すべきです。

三井情報では、Kubernetesを導入、維持するためのソリューションとしてVMware Tanzuの利用をお勧めします。VMware Tanzuは、VMwareが提供するKubernetes関連製品群のポートフォリオであり、ポートフォリオ内のApplication Runtimeに属するTanzu Kubernetes Grid(以下 TKG)は、オープンソースであるKubernetesをベースに開発されたコンテナランタイムです。


上図ではオープンソースのKubernetesクラスタとTKGによるKubernetesクラスタ導入にかかる時間を比較した内容となります。Kubernetesでは、ノードと呼ばれるマシンの集合体であるKubernetesクラスタ上でコンテナ化されたアプリケーションを実行します。

オープンソースのKubernetesクラスタの展開までには、弊社で計測したところ総じて439分の時間を要しました。一方で、TKGを利用しKubernetesクラスタの展開を試みた場合には、20分まで短縮することが可能でした。TKGでは、Kubernetesクラスタの構成まで自動的に行われるため、複雑な構築作業は不要となり利用開始までの負担が低減されます。同様に、バージョンの変更に必要な作業もオープンソースのKubernetesと比べ単純なものとなっています。

TKGを利用し、Kubernetesの導入や維持にかかる負荷を減らすことで、開発者はアプリケーションの開発や機能改善に注力できます。例えば、CI/CDというアプリケーションをリリースするまでのプロセスを自動化する手法を用いることで、アプリケーションサービスの市場投入や機能改善のスピード向上を行うことが可能です。

CI/CDについては以下のコラムを参照ください。

「CI/CDで始める“ニューノーマル”時代のインフラ運用」(https://www.mki.co.jp/knowledge/column104.html

まとめ

ビジネスのスピードを上げるためには、アプリケーションの開発や維持に対するスタイルの変化が求められています。その変化に対する足がかりとなるため、コンテナとKubernetesが注目を集めていると考えます。

三井情報では2018年より、コンテナプラットフォームの提供を行っており、今回取り上げたVMware Tanzu を利用し、「VMware TKG on VxRailパッケージ」を提供しています。このパッケージでは、コンテナプラットフォームの導入から導入後のサポートを行っており、これからKubernetesを始めようとしているお客様にも適した製品となっております。ご興味を持たれた方は、ぜひお問い合わせください。

 

関連ページ

おすすめコラム:
CI/CDで始める“ニューノーマル”時代のインフラ運用

関連ソリューション:
VMware TKG on VxRailパッケージ

 

執筆者

お問い合わせ

ページTOP
当ウェブサイトでは、サイトの利便性やサービスを改善するため、Cookieを使用しております。このまま当ウェブサイトをご利用になる場合、Cookieを使用することにご同意いただいたものとさせていただきます。Cookieに関する情報や設定については「個人情報保護方針」をご覧ください。 同意して閉じる