使える! 情シス三段用語辞典74「Kubernetes(クーべネティス)」

常に新しい用語が生まれてくる情報システム部門は、全ての用語を正しく理解するのも一苦労。ましてや他人に伝えるとなると更に難しくなります。『情シスNavi.』では数々のIT用語を三段階で説明します。

一段目 ITの知識がある人向けの説明
二段目 ITが苦手な経営者に理解してもらえる説明
三段目 小学生にもわかる説明

取り上げる用語を“知らない”と思った人は、小学生にもわかる説明から読んでみると、理解が深まるかもしれません!?

一段目 ITの知識がある人向け「Kubernetes」の意味

「Kubernetes」は、Dockerコンテナオーケストレーションツールです。「クーべネティス」「クーバネティス」と読みます。Dockerは、Docker社の提供するオープンソースのコンテナ型仮想化技術の一つ。(参考記事:「使える! 情シス三段用語辞典62「Docker」」)

Dockerのコンテナイメージの特長は、サーバー間の移動が簡単で、かつ移動後の再現性が高いことです。

しかしながら、実際に商用システムとして使う際には、運用面での課題がありました。例えば、数十~数百台規模のサーバーにコンテナを配置する場合、どのように配置するかを決めるマッピング作成や、それだけの数のデプロイをどうやって行うかなどの環境構築に手間がかかります。他にも、別サーバーに分かれている複数のコンテナ間の連携をどう取るか、外部からコンテナへのネットワーク接続に必要なNAT設定などのネットワーク管理が複雑になってしまうなど、運用面では様々な課題がありました。

これらの様々な課題を解決してくれるのが、Kubernetesです。

Kubernetesは、複数コンテナ間のネットワーク管理、コンテナのストレージ管理、負荷分散、監視、無停止アップデートなど多岐にわたって運用を便利にしてくれるツールです。複数台のサーバーで構成している実行環境を、まるで1台の実行環境のように扱うことができます。更にKubernetesにはスケジューリング機能もあり、コンテナを起動する際にコンテナイメージと台数を指定することで、 コンテナの実際の配置が自動的に行われます。また、ディスク容量などのリソースが足りなくなった場合は、サーバー増設を行えば稼働中のアプリケーションに影響を与えずに性能を拡張することができるなど、柔軟な拡張性も備えています。

 

このような機能をもつKubernetesですが、これは「Cloud Native Computing Foundation(CNCF)」コミュニティを中心に開発されています。CNCFにはAWSやMicrosoft、Google、VMwareなど数々のベンダーが参加していますが、主導的なベンダーは存在せず、中立的でオープンな開発コミュニティであることが特徴です。

Kubernetesは、Googleが自社サービスのコンテナ管理に使用しており、Googleでの実績があることで利用が広がりました。

AWS、Microsoft Azure、Google Cloud Platformは、自社のクラウドプラットフォームでKubernetesと連携して管理が行えるサービスをリリースしています。名だたるクラウドサービスプロバイダーが支持したことで、Kubernetesは、広がりつつあるDockerコンテナ利用の中で運用ツールのスタンダードとしての地位を確保したといえるでしょう。

 

二段目 ITが苦手な経営者向け

とあるWebサービス会社のSEの久部さんと社長が話しています。

社長:Javaが有償化したって話、聞いたよ~。まいっちゃうよなあ、今までただで使えていたものでいきなりお金をとるなんて。うちのWebサービスもランニングのコストアップだなあ。

久部さん:社長、しかたないですよ。Javaはオラクル主導で開発されていますからね。ベンダーロックインの暗黒面ですね。

社長:うーん。他の会社も、いきなりこれは明日から値上げです!とか言い出さないだろうかなぁ?

久部さん:そういわれてみたら、確かにリスクはありますね。例えば、うちのWebサービスシステムはAWSで作っていますけど、もしAmazonが「値上げする!」といったら言いなりですよ。

社長:値上げならまだいいが、もしもサービスを終了するなんて言い出したらイチから作り直しだぞ。ああ、考えるだけでも恐ろしい・・・。

久部さん:もしどうしてもベンダーロックインを避けたいなら、うちのシステム、事業者によらずに使えるようにコンテナ化するといいかもしれないですね。

社長:コンテナ化? コンテナってなんだ、貨物船に積んだりするあれか?

久部さん:そうそう、それです。コンテナ化というのは、システムのアプリケーション部分だけをまとめてしまうイメージなんです。今までは、クラウド上にサーバーを置いて、そのサーバーにシステムを構築するという形でした。だからそのクラウドサービスがなくなるとサーバーごと無くなってしまうんですね。

社長:コンテナというのは、どこで出てくるんだ?

久部さん:コンテナ化というのは、アプリケーションを小さくまとめたモノってイメージで、他のサーバーに置いても動くように作られているんです。だからうちのシステムをコンテナ化しておくと、もし今使っているクラウドのサーバーが無くなったとしても、うちで作ったアプリケーション部分だけ他のサーバーに引っ越しができるんです。AWSをはじめ、Docker対応されたクラウドサービスも増加中であることも後押しする一因でしょう。

社長:それ、なかなか良いじゃないか。もう少し詳しく教えてくれないか。

久部さん:しかも、コンテナを利用してシステムを小さなサービス機能単位に分けて作るというのは、最近の流行りでもあります。クックパッドやWantedlyなども採用していて「マイクロサービス化」っていうらしいですよ。

社長:コンテナが流行りなのか。でもあんまり小さく分けたら、オーバーヘッドが出るんじゃないのか。

久部さん:Dockerコンテナなら、Kubernetesという管理ツールがあって、コンテナがたくさんあっても管理のオーバーヘッドが出ないように運用できるんですよ。コンテナをデプロイしたり、ローリングアップデートできたり、コンテナ同士の接続管理とかもやってくれるんですよ。コンテナ運用には、運用ツールが不可欠です。

社長:えーと、マイクロサービス化と、クー、クー、・・・。

久部さん:Kubernetesです。

社長:今すぐは無理かもしれないが、覚えておこう。今後使うかもしれないしな。えーと、クー・・・、クーべネティス!

 

三段目 小学生向け

SF映画に出てきそうな話ですが、ストーリー仕立てで解説します。

20XX年、地球では共同国家が設立。資源が枯渇した地球に変わり、資源調達先としての可能性を調査すべく、国連の指揮の下「スペースレンジャー」による惑星探査が始まろうとしていた。

『スペースレンジャーの諸君、これからそれぞれ担当の星に行ってもらいたい。君たちの任務は、その星でしっかり生き延び、探査活動を行うことである。これまでは地球以外の星に行く場合、土を運び込んで仮設農場を作ったり、生命維持のための広大な居住スペースを作ったりと準備が大変であった。しかし、今は新しい設備がととのった。生命維持のために必要最低限の装置を備えた居住カプセルを我々は開発した。君たちひとりひとりに一台与えられることになる。これから君たちがこのカプセルに入って出発準備ができたら、中央司令部の作戦通りにカプセルを各星に向けて出発してもらう。状況によっては、途中で配置換えもあるだろう。そのときはカプセルごと次の星に移動してもらうつもりだ。本当にそんな小さなカプセルの中で生きられるのかという心配もあるだろうが、それは大丈夫だ。カプセルでは、水も空気も食べ物も、君たちの生命に必要なものは全て作り出せるようになっている。最新の技術によって土や水はその星にある物質を利用して用意できるようになっているんだ。また、カプセルが壊れたとしても司令官との連絡がとれるようになっている。中央指令部には「Kubernetes」という管理システムがあるのだ。そこで、君たち全員の健康状態やカプセルの状態、連絡系統をしっかり管理している。司令部との連絡もばっちりだ。諸君の健闘を祈る!』

 

もうそろそろ気づいたでしょうか? 隊員はアプリケーション、星はサーバー、カプセルはコンテナと呼ばれるものにあたります。サーバーでアプリが動くには、そのアプリのための設定や関連するファイルが必要になります。もともといたサーバー以外でも動けるように、そういう必要な設定やファイルを、アプリと一緒にまとめてしまったものがコンテナです。

カプセル(=コンテナ)は、星(=サーバー)から星(=サーバー)へ移動しやすい特長がありますが、隊員(=アプリ)がたくさんいる場合にはどこに誰がいるか、壊れているカプセル(=コンテナ)がないか、など管理が難しくなります。遠く離れた星(=サーバー)にいる中央司令部(=システム運用者)との連絡もしにくくなってしまいます。

コンテナ運用ツールKubernetesによって連絡系統を整備し、隊員たちが各星に散らばっていてもまるでみんな地球にいるかのように(アプリケーションがサーバーに分散されていてもまるで一つのサーバー上にあるかのように)、状態がわかり管理を行うことができるのです。

 

さて、皆様のご理解は深まったでしょうか?

 

【執筆:編集Gp 星野 美緒】

関連記事

カテゴリー:

ナレッジ情シス用語辞典

情シス求人

  1. チームメンバーで作字やってみた#1

ページ上部へ戻る