Kubernetesがクラウド界の「Linux」と呼ばれる2つの理由:これから始める企業のためのコンテナ実践講座(3)(1/3 ページ)
大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する「これから始める企業のためのコンテナ実践講座」第3回は、Kubernetesがクラウド界の「Linux」と呼ばれている理由とともに、Kubernetes内部の仕組み、機能を紹介します。
大量のコンテナ管理や負荷分散を実現する「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の利用者が増えてきています。それを裏付けるように、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は複数のホストを束ねたクラスタで同じような機能を用意しています。ざっくり図にしたのが下記です。
Kubernetes内の役割分担
それでは、Kubernetesにはどのような機能が備わっているのでしょうか? 機能について紹介する前に、Kubernetesにある大きな2つの役割「Kubernetes Master components」(以下、マスター)と「Kubernetes Node components」(以下、ノード)を紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「Kubernetes」とは何か――コンテナ型仮想化の本番利用に向けた課題
本連載では、サービスの開発、提供のアジリティ向上の一助となることを目的として、企業における「Kubernetes」の活用について解説する。初回は、Kubernetesを使う上で前提となる「Docker」についておさらいし、Kubernetesの概要や起源、現状などを紹介する。 - Kubernetes、コンテナ技術を活用した開発アジリティー向上にインフラアーキテクトはどう貢献したのか
Kubernetes、コンテナ技術を活用したCI/CD基盤におけるサービス開発について、リクルートの事例を基に解説する連載。初回は、インフラアーキテクトの視点から技術選定の考え方について解説。 - Kubernetes 1.14がリリース、Windowsコンテナサポートが安定版に到達
Kubernetesプロジェクトは2019年3月25日(米国時間)、Windowsノードの本番サポートなどを盛り込んだKubernetes 1.14をリリースしたと発表した。Kubernetes 1.14では、安定性に重点を置き、既にβ版などとして搭載している機能を成熟させることに力を注いだという。