検索
連載

Kubernetesがクラウド界の「Linux」と呼ばれる2つの理由これから始める企業のためのコンテナ実践講座(3)(1/3 ページ)

大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する「これから始める企業のためのコンテナ実践講座」第3回は、Kubernetesがクラウド界の「Linux」と呼ばれている理由とともに、Kubernetes内部の仕組み、機能を紹介します。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 大量のコンテナ管理や負荷分散を実現する「Kubernetes」について、概要から本番活用の仕方まで解説する本連載「これから始める企業のためのコンテナ実践講座」第2回では、エンタープライズのサービス提供環境(以下、本番環境)でコンテナ技術を活用する際の課題を解決するKubernetesの概要と、3つのコンセプトを紹介しました。

第2回:「Excel手順書にさようなら」――運用管理者の不安を解消する「Kubernetes」のコンセプト

大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する本連載。第2回はコンテナ技術を本番環境で活用する際の課題を解決する「Kubernetes」と3つのコンセプトを解説します。


 第3回は、Kubernetesが何を実現するのかについてや、Kubernetesが「クラウド界のLinux」と呼ばれる理由とともに、Kubernetes内部の仕組み、機能を紹介します。

Kubernetesがクラウド界のLinuxと呼ばれる理由

 なぜKubernetesはクラウド界のLinuxと呼ばれているのでしょうか。その理由は、2つあります。1つ目は「Linuxのようなエコシステムとコミュニティーを持っていること」、2つ目は「Linuxのような機能を持っていること」です。まずは1つ目について見ていきましょう。

 Linuxのエコシステムとは、「さまざまなベンダーがLinuxというプラットフォームを強化した結果、Linuxへの魅力が増して、Linux利用者が増え、他のベンダーもLinuxに関わっていく」というように、さまざまなベンダーがLinuxを中心に考えるようになるサイクルのことです。

エコシステム拡大サイクル
エコシステム拡大サイクル

 Kubernetesの場合はどうでしょうか? Kubernetesの管理団体である「Cloud Native Computing Foundation」(以下、CNCF)では、Kubernetesを拡張するベンダーや、関連ツールを開発するベンダーを「The Cloud Native Interactive Landscape」としてまとめています。これを見ると多くのベンダーがKubernetesをプラットフォームとして、周辺の機能やサービスを整備していることが分かります。

Kubernetesを取り巻くソフトウェア群
Kubernetesを取り巻くソフトウェア群(出典:「The Cloud Native Interactive Landscape」)

 これらのベンダー、サービスによりKubernetesの魅力が増した結果、Kubernetesの利用者が増えてきています。それを裏付けるように、CNCFが主催するKubernetesカンファレンス「KubeCon + CloudNativeCon」では、2016年の参加者数が1139人だったのに対し、2017年に4212人、2018年には8000人(キャンセル待ち1000人)となりました。また、Kubernetesを取り上げるメディアや書籍も増えており、今後、興味を持った企業によってKubernetesに関するさまざまなサービスが登場することは間違いないでしょう。

 これらのことから、KubernetesはLinuxのようなエコシステム、コミュニティーを持っているといえます。

KubernetesとLinuxはどう似ているか?

 Kubernetesが持つ機能をLinuxと比較しながら紹介する前に、Linux(Linuxディストリビューション)が何をするのか、改めて振り返ってみましょう。Linuxはオペレーティングシステム(以下、OS)であるということは分かりますが、本当は何をしているのでしょうか。

 Linux OSの根幹である「Linux カーネル」では、下記を管理します。

  • プロセス(ライフサイクル)
  • 名前空間
  • メモリ
  • プロセススケジューリング
  • 割り込み
  • デバイス
  • ファイルシステム
  • ネットワーク
  • ネットワークセキュリティ

 Linux OS全体としての「Linuxディストリビューション」では下記を管理します。

  • ユーザー
  • 承認
  • 認可
  • ネットワーク
  • ログ
  • セキュリティ
  • ジョブ
  • UI/GUI
  • DNS
  • パッケージ(rpm, deb)

 Linuxカーネルの機能は、ホスト単体での機能ですが、Kubernetesは複数のホストを束ねたクラスタで同じような機能を用意しています。ざっくり図にしたのが下記です。

LinuxとKubernetesの機能対比
LinuxとKubernetesの機能対比

Kubernetes内の役割分担

 それでは、Kubernetesにはどのような機能が備わっているのでしょうか? 機能について紹介する前に、Kubernetesにある大きな2つの役割「Kubernetes Master components」(以下、マスター)と「Kubernetes Node components」(以下、ノード)を紹介します。

Kubernetesにおける「マスター」と「ノード」
Kubernetesにおける「マスター」と「ノード」

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る