Kubernetesクラスターとは

執筆者

Sai Vennam

Technical Offering Manager

Kubernetesクラスターが定義されました

Kubernetesクラスターは、Kubernetesコンテナ・オーケストレーション・プラットフォームで管理されるコンテナ化されたアプリケーションを実行する一連のコンピューティング・ノード(仮想マシンまたは物理マシン)です。

クラウドは、柔軟性、俊敏性、移植性、コスト管理など、企業に無数のメリットをもたらします。ただし、これらの利点には複雑さが伴い、クラウドの管理とクラウドに存在するアプリの提供は複雑になります。Kubernetesは、これらの複雑さを軽減するのに役立つコンテナオーケストレーションプラットフォームです。

クラスターは、Kubernetesのアーキテクチャーの基盤を提供します。クラスターは、迅速で制御されたクラウド・アプリの配信を可能にする構成要素と考えてください。Kubernetesクラスターは、1つのユニットとして連携して動作する接続されたマシンのセットです。ワーカーノードは、コンテナ化されたアプリをデプロイ、実行、管理できるコンピュートホストを表す。ワーカー・ノードはマスター・ノードによって管理されます。マスター・ノードは、利用可能な容量とユーザー定義の構成に基づいてデプロイ先を選択することにより、ワーカー・ノードにコンテナをスケジュールします。

スクリプトは、コンテナの構成と、永続ストレージやサービスなど、アプリの実行に必要なリソースを指定します。Kubernetesでは、Podはクラスター内でデプロイ可能な最小ユニットであり、単一のユニットとして扱う必要があるコンテナをグループ化します。Kubernetesは、アプリケーションインスタンスをホストするPodを作成します。Podは1つ以上のアプリ・コンテナを保持し、ストレージやネットワーク情報などのリソースを共有します。

The DX Leaders

AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。

ご登録いただきありがとうございます。

ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。

Kubernetesオーケストレーションへの進化

コンテナの出現により、クラウド・コンピューティングが簡素化されました。コンテナはコードとその依存関係をすべてパッケージ化し、ソフトウェア・スタックがどのような環境にあるかに関係なく実行できるようにします。コンテナは個別のパッケージを提供しましたが、管理上の問題も複雑です。課題は、これらの効率的で軽量なパッケージを連携させて機能させる方法を見つけることでした。オーケストレーションは、マルチクラウド環境を簡素化するための次の進化でした。

コンテナ化の詳細については、動画「コンテナ化の説明」をご覧ください。

コンテナ・オーケストレーションの詳細については、ビデオ「コンテナ・オーケストレーションの説明」を参照してください。(ibm.com外部へのリンク)

Kubernetesは、コンテナ化されたワークロードとマイクロサービスを管理するためのオープンソースのプラットフォームを提供する(リンクはibm.comの外にある)。これにより、開発者は、コンテナベースのアプリケーションに標準と一貫性を全体に適用することで、クラウド・プロバイダーの違いを克服できます。このプラットフォームはコンテナ中心で、ユーザーのワークロードに応じてストレージ、ネットワーキング、コンピューティングをオーケストレーションします。

Kubernetesを使用すると、ユーザーはプラットフォーム固有の機能を構築するのではなく、クラウド・アプリに必要な機能に集中できます。その機能を実現するのが、基盤となるKubernetesアーキテクチャです。

Kubernetesのコンテナオーケストレーション機能の詳細については、「Kubernetes vs. Docker: どちらか一方を選ぶべきではない」を参照してください。

 

Kubernetesクラスターアーキテクチャ

KubernetesクラスターはKubernetesの構成要素であり、プラットフォームのアーキテクチャーの基盤を提供します。このビルディング・ブロック構造のモジュール性により、可用性、拡張性、容易なデプロイメントが実現します。

今日のワークロードには、アプリケーション・レベルとインフラストラクチャー・レベルの両方で高可用性が求められます。Kubernetesは、アプリとその基盤となるインフラストラクチャーの間に抽象化層を作成することで、利用可能なリソース全体にワークロードを効率的に分散します。Kubernetesは、継続的なノードとコンテナのヘルスチェックにより、アプリの障害を防ぎます。コンテナがダウンした場合、自己修復と複製が障害を解決します。組み込みのロード・バランサーは、ワークロードをリソースに分散して、トラフィックの急増、ピーク、または停止の影響を軽減します。

この同じリソースの効率的な使用が、拡張にも影響を及ぼします。新しいサーバーの追加と削除が簡素化され、シームレスな水平スケーリングが可能になります。自動化されたオートスケーリングは、指定されたメトリクスに基づいて実行中のコンテナを増加させます。複製制御は、実行中のPodが多すぎると過剰なPodを終了し、実行中のPodが少なすぎるとPodを開始します。

Kubernetesのアーキテクチャーの詳細については、次のビデオ(「Kubernetesの説明」)をご覧ください。

動画を見る

開発者にとってスピードは不可欠。Kubernetesは、ソフトウェアの迅速な構築、テスト、リリースに対応できるように設計されています。新しいバージョンまたは更新されたバージョンは、自動ロールアウトを通じて伝播されます。また、カナリア・リリースでもうまく動作するため、新しいバージョンのデプロイメントを以前のバージョンと並行して実行し、新しいバージョンの信頼性を検証した後、それを完全な運用環境に導入することができます。

PrometheusによるKubernetesクラスターのモニタリング

コンテナ化されたアプリがよりきめ細かく独立するにつれて、監視は課題になります。その課題は、Kubernetesクラスターの監視にまで及びます。従来の監視では、プログラム、サービス、またはツールが稼働中(実行中)か停止中(実行されていない)かがわかります。マイクロサービスの場合、単一機能のマイクロサービスはビジネスに影響を与えずに停止する可能性があるため、アップ/ダウンのアプローチはあまりに過酷です。最新の監視ツールは、より洗練された区別を提供し、多様なプラットフォームや変更可能なアプリとより適切に統合する必要があります。

オープンソースのロギング、監視、アラートツールであるPrometheusは、マルチクラウド環境の移植性と変更性を考慮して設計されており、従来の監視の制限を克服します。Kubernetesクラスター、ワーカー・ノード、デプロイメントから豊富なメトリックを導き出します。Prometheusはキーと値のペアを使用しますが、これはKubernetesがメタデータを整理する方法とうまく連携します。Prometheusはデータ・ターゲットを定期的にスクレイピングして自動検出するため、一時的なワークロードに適しています。

IBM Cloud

Red Hat OpenShift AI on IBM Cloud:AIワークロードの導入

Red Hat OpenShift on IBM CloudでAI機能を活用できます。このビデオでは、スケーラブルな機械学習運用プラットフォームを使用して、AIワークロードを効率的に構築、導入、管理する方法について説明します。

関連ソリューション
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloudは、フルマネージド型のOpenShift Container Platform(OCP)です。

Red Hat OpenShiftの詳細はこちら
コンテナ・ソリューション

コンテナ・ソリューションは、セキュリティー、オープンソースのイノベーション、迅速なデプロイメントを活用して、コンテナ化されたワークロードを実行およびスケールアップします。

コンテナの詳細はこちら
クラウド・コンサルティング・サービス 

IBMのクラウド・コンサルティング・サービスで新しい機能にアクセスし、ビジネスの俊敏性を高めましょう。ハイブリッドクラウド戦略や専門家とのパートナーシップを通じて、ソリューションを共創し、デジタル・トランスフォーメーションを加速させ、パフォーマンスを最適化する方法をご覧ください。

クラウド・サービス
次のステップ

フルマネージドのRed Hat OpenShiftプラットフォームをぜひお試しいただくか、または、IBM Cloud Kubernetesエコシステムの柔軟性をご覧ください。ニーズに合わせたスケーラブルで安全なソリューションにより、開発とデプロイメントのプロセスを加速できます。

Red Hat OpenShiftの詳細はこちら Kubernetesはこちら