Kubernetes クラスタとは

URL をコピー

Kubernetes (k8s) クラスタは、コンテナ化されたアプリケーションを実行するノードの集合体です。オンプレミス、クラウド、物理/仮想マシン等、複数の環境をまたいでコンテナを実行します。Kubernetes を実行しているときは、クラスタが実行されています。

クラスタには少なくとも、1 つのコントロールプレーンと、1 つ以上のノードと呼ばれるコンピューティングマシンが含まれます。コントロールプレーンの役割は、どのアプリケーションが実行されているか、どのコンテナイメージが使用されているかといった、クラスタの望ましい状態を維持することです。ノードは実際にアプリケーションとワークロードを実行します。

クラスタは Kubernetes の主要な利点、つまりオンプレミスまたはクラウド内の物理マシンや仮想マシンのグループ全体でコンテナをスケジュールして実行する機能の中核をなすものです。Kubernetes コンテナは個々のマシンに関連付けられておらず、クラスタ全体で抽象化されています。

各 Kubernetes クラスタでは望ましい状態 (desired state) として、どのアプリケーションまたは他のどのワークロードを実行する必要があるか、どのイメージを使用するか、どのリソースを利用できるようにするべきかといった構成の詳細が定義されています。

望ましい状態は、マニフェスト (実行するアプリケーションのタイプと正常なシステム実行のために必要なレプリカ数を宣言する JSON または YAML ファイル) の集合である構成ファイルによって定義されます。

クラスタの望ましい状態は、Kubernetes API で定義します。これは、コマンドラインから (kubectl を使用)、あるいは API を使用してクラスタと通信し、望ましい状態を設定または変更することで実行できます。

Kubernetes は、クラスタを自動的に管理して望ましい状態に一致させます。簡単な例として、望ましい状態を「3」に設定してアプリケーションをデプロイするとします。この設定は、アプリケーションの 3 つのレプリカが実行されている必要があることを表します。これらのコンテナの 1 つがクラッシュした場合、Kubernetes は、実行されているレプリカが 2 つだけだということを認識し、レプリカを 1 つ追加して望ましい状態を保持します。

Kubernetes パターンを使用し、負荷に基づいてクラスタのスケールを自動的に管理することもできます。 

ノード、Pod、その他の Kubernetes 用語とクラスタとの関連

クラスタは、ノードのセットであると定義しました。クラスタの機能を理解するのに役立つ他の Kubernetes 用語をいくつか見てみましょう。

コントロールプレーン:Kubernetes ノードを制御する一連のプロセス。すべてのタスクの割り当てはここで発生します。

ノード:要求に基づいてコントロールプレーンによって割り当てられたタスクを実行するマシン。

Pod:1 つのノードにデプロイされた、1 つ以上のコンテナのセット。ポッドは、最小かつ最も単純な Kubernetes オブジェクトです。

サービス: 一連のポッドで実行されているアプリケーションをネットワークサービスとして公開する方法。ポッドから作業の定義を分離します。

ボリューム:ポッド内のコンテナにアクセスできるデータを含むディレクトリ。Kubernetes ボリュームの寿命は、それを包含するポッドと同じです。ボリュームは、ポッド内で実行されるどのコンテナよりも長く存続し、コンテナが再起動してもデータは保持されます。

名前空間:仮想クラスタ。名前空間により、Kubernetes は同じ物理クラスタ内の (複数のチームまたはプロジェクトの) 複数のクラスタを管理できます。

Red Hat のリソース

先進的なクラウドネイティブ・アプリケーションにより、Kubernetes 環境は高度に分散されています。オンプレミス、パブリッククラウド、およびエッジの複数のデータセンターをまたいでデプロイすることが可能です。

大規模に、あるいは本番環境で Kubernetes を使用する組織は、開発用、テスト用、本番用に複数のクラスタを環境全体に分散させ、それらを効果的に管理できるようにすることが必要です。

Kubernetes クラスタ管理とは、IT チームが Kubernetes クラスタのグループを管理する方法のことです。 

Red Hat は、Kubernetes を含むオープンソース・コンテナ・テクノロジーのリーダー企業であるとともに積極的に開発も行っており、コンテナ・インフラストラクチャの保護、単純化、自動更新に不可欠なツールを生み出しています。 

Red Hat® OpenShift® はエンタープライズ・グレードの Kubernetes ディストリビューションです。Red Hat OpenShift を使用すると、運用チームと開発チーム向けの単一の統合プラットフォームを利用できます。Red Hat OpenShift は、開発者に言語、フレームワーク、ミドルウェア、データベースの選択肢を提供するとともに、CI/CD を介したビルドおよびデプロイの自動化により生産性を大幅に向上させます。

OpenShift を基盤として構築された Red Hat Advanced Cluster Management と Red Hat Ansible® Automation Platform を併用することで、パブリッククラウド、オンプレミス、エッジ環境など、複数のリージョンにまたがる複数の Kubernetes クラスタを効率的にデプロイし、管理できます。

Red Hat によるハイブリッド環境の構築と自動化のサポートについてはこちら

 

動画 Open Answeres: Red Hat OpenShift とは?(再生時間: 0:31)

ハブ

Red Hat 公式ブログ

Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。

すべての Red Hat 製品のトライアル

Red Hat の無料トライアルは、Red Hat 製品をハンズオンでお試しいただける無料体験版です。認定の取得に向けた準備をしたり、製品が組織に適しているかどうかを評価したりするのに役立ちます。

関連情報

開発者が Red Hat OpenShift を選ぶ理由 | Red Hat

Red Hat OpenShift は、アプリ開発の複雑さを軽減するアプリケーション・プラットフォームです。開発者はどこでも、使い慣れたツールでアプリを構築し、デプロイできます。

サンドボックスコンテナとは?をわかりやすく解説 | Red Hat

サンドボックスコンテナは、アプリケーションの保護のために未テストのコード等を分離して実行する環境。コンテナを起動する仮想マシンを使用してプログラムを分離します。

ホスト型コントロールプレーンとは | Red Hat

ホスト型コントロールプレーンは、その主要コンポーネントの統合された制御と管理を行う分離された管理プレーン。小さなノードで実行でき、クラスタのコストを削減します。

コンテナリソース

関連記事