DockerコンテナからKubernetes、OpenShiftまで優しく解説-- Kubernetesを “ライブ施設”に例えると……。(前編)

ZDNET Japan Ad Special

2020-06-09 11:00

[PR]「オープンソースカンファレンス 2020 Online/Spring セミナー」が4月24日、25日の両日オンラインで開催され、CNBF(Cloud Native Bright Future)発起人の高良真穂氏が講演。

「オープンソースカンファレンス 2020 Online/Spring セミナー」が4月24日、25日の両日オンラインで開催され、CNBF(Cloud Native Bright Future)発起人の高良真穂氏が講演。コンテナやKubernetesを “ライブ施設”に例えて、わかりやすく解説した。その内容を、ダイジェストで紹介する。(今回は前編。後編はこちら

なぜKubernetesを使うのか

 こんにちは、CNBFの発起人をしています高良真穂です。CNBFは、クラウドネイティブに取り組みたい企業と、すでに取り組んでいる企業との交流を支援するコミュニティです。1月末に初回イベントを開催したものの、新型コロナウィルスの影響で2回目以降が開催できていません。イベント自粛が長期にわたりそうなので、今回を含めオンラインで何ができるかをいろいろと考えているところです。

 それでは本題に入ります。「Kubernetesをマスターするにはどうすればよいか?」と考えたとき、「自身が心からKubernetesが良い、やる価値がある」と実感することが一番だと思います。それを感じていただけるよう、機能説明に入る前に、Kubernetesにどういう価値があるのか、そもそも何ができるのかについてお話します。

 Kubernetesを難しい言葉を使わないで説明するとしたら、コンテナ化したアプリケーションの“ライブ施設”のようなものです。ライブのステージには、コンテナ化したアプリが上がりますが、ライブ施設を運営するには音響、照明、カメラ、警備、トイレ、交通機関などさまざまなものが必要になります。そうした関連するものすべてを提供できるのがKubernetesです。Kubernetesを使うと、アプリ開発者があれこれ準備しなくても、本番配信がかなり簡単にスタートできるようになります。

 では、なぜKubernetesを使わなくてはならないのでしょうか。スマートフォンアプリを例にとって説明します。いまやスマホは、決済、天気予報、検索、地図、SNSなど、誰もが手放せなくなっている存在です。現代人の生活に直結しているため止めることが許されないし、アクセス集中や障害にも強くなければなりません。そうなると、バックエンドで支えるサーバーの運営管理は、今までのやり方では限界があります。Kubernetesは、こうした24時間365日止められない、スケーラビリティが必要、障害に対して強いといった要件において、とてもよく考えられた仕組みになっています。

Kubernetesが運用を変える

 Kubernetesは、もともとはGoogleが開発したもので、今はCNCF(Cloud Native Computing Foundation)に開発が移っています。CNCFはGoogle、IBM、AWSなど主要ITベンダーが集まり5年前に設立した団体です。オープンソースのアップストリーム(上流)のKubernetesを開発し、配布しています。いろんなところでダウンロードできますが、サポートは8~9カ月で、本格的に使うとなると頻繁にバージョンアップが必要なので、アップストリームのKubernetesを商用で使うのはけっこう大変なのです。そこで、さまざまなベンダーがKubernetesマネージドサービスやソフトウェア製品を提供していますが、どれも “共通のKubernetesコア”をもっているため、さまざまなところで使うことができるのです。

 どういうことかというと、クラウドは宿命として安定性を維持しにくいという側面があります。機能追加のバージョンアップや更新などがあり、同じ品質を維持するのが難しいのです。「このクラウドだと調子悪いな」という時に別のクラウドを並行して動かすなど、いつでも主体を切り替えられるようにする構成も必要です。またテストと本番環境で、オンプレミスとクラウドを切り替えたりすることもあります。このようなときにKubernetesを使っていれば、コアが同じなのでどこでも同じように動かすことができるのです。

 現在CNCFには500社くらいの企業が参加し、いくつかのプロジェクトが動いています。なぜこんなに企業が集まるのか、投資するのかというと、クラウドネイティブの市場規模がとても大きく、マーケットキャピタルで評価されている金額だと7,830兆円といわれています。そのためKubernetesは、いまとても盛り上がっており、祭り真っ盛りという状態なのです。

 CNCFではクラウドネイティブのロードマップを出しており、①コンテナ化、②CI/CDの実践、③Kubernetesの活用、④可視化と分析、⑤サービスメッシュとなっていますが、今日は、コンテナやKubernetesを中心に話を進めていくことにします。

 ここまでのおさらいをしておきます。Kubernetesはコンテナアプリ運用のプラットフォームです。共通のコアがあるので、ハイブリッドクラウドやマルチクラウドでも動かせます。どこかのベンダーに固定されることがありません。価値があるので業界が注目しています。運用が根底から変わり、楽になるので大きな期待が寄せられています。

Kubernetes が非機能要件を担当

 では、詳細を説明していきます。図1左は、Javaの実行環境をクラスタリングして、ロードバランサーをおいて可用性、スケーラビリティを担保しています。これが、過去、そして現在のやり方です。一方、図1右はKubernetesのクラスタの上でアプリケーションコンテナが動きます。

 これによって何が変わるかというと、機能要件と非機能要件が変わります。機能要件はアプリケーション機能の要件で、非機能要件はスケーラビリティ、可用性、応答性、セキュリティなど、システムとして成り立つために必要なものです。これまでは、機能要件と非機能要件の両方をミドルウェアの環境と一緒に作っていたため、時間もかかるし大変でした。

 しかしKubernetesを使うようになると、機能要件はコンテナの中、非機能要件はKubernetesが面倒をみます。開発者は機能要件だけに集中することができ、非機能要件は例えばクラウドのマネージドサービスに任せるといったことが可能になります。オンプレミスからの移行も楽になります。

図1:Kubernetes で構築をシンプルにする
図1:Kubernetes で構築をシンプルにする

 機能要件と非機能要件が混在するなかで、Kubernetesはどのようにして非機能要件をサポートしていくのでしょうか。その説明の前に、まず、コンテナとは何なのか整理しておきます。

 コンテナとは“容器”のことです。実世界とソフトウェアを対比していうと、容器である空き箱のことをソフトウェアでは「ベースイメージ」と言います。また、必要なものをコンテナに入れて箱詰めすることを、「コンテナをビルド」すると言います。そして持ち運び可能な「コンテナイメージ」にします。これがコンテナ化の基本の流れです。このコンテナイメージを実行するときには、コンテナの中に必要なものが全部入っているのでインストールが簡単です。コンテナを持ってきてイメージをインスタンス化して実行するだけで動き出します。インストールにかかる時間もなくなります。

図2:コンテナ化の流れ
図2:コンテナ化の流れ

 パッケージ化したコンテナイメージは、倉庫の役割を果たすレジストリサービスに入庫し、棚に相当するリポジトリに保管します。Kubernetesは、リポジトリからコンテナイメージを出庫して、先述したライブ施設に例えるとステージ上で組み立ててアプリケーションをスタートさせます。

図3:Kubernetesが、レジストリサービスからコンテナを出庫
図3:Kubernetesが、レジストリサービスからコンテナを出庫

コンテナを実行する仕組み

 では、Kubernetesがコンテナを実行する仕組みを見ていきましょう。ここからは、Kubernetesのオブジェクトを“Kubernetes国の小人たち”に例え、専門用語をなるべく使わず説明していきます。最初に、登場人物を簡単に紹介しておきます。これらはKubernetesのオブジェクトに対応するものです。

  • ポッド:箱(コンテナ)を持った小人です。ポッドの中にはコンテナが入っています。
  • ノード:マスターノードとワーカーノードがあります。実体は仮想サーバーや物理サーバーで、ポッドやコンテナが動く環境です。
  • 司令官:キューブコントロールというコマンドで命令を与えます。JSONやYAMLで書いた指令書をクラスタへと渡します。

 そのほか、サービス、コントローラー、APIサーバー、クベプロキシ、スケジューラー、クベレット、メトリックスなどが登場します。

後編に続く

関連動画

OSCオンラインの高良様講演アーカイブ

高良様作の「Kubernetes の国の愉快な小人の世界」

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

自社にとって最大のセキュリティ脅威は何ですか

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]