ログイン / 登録 アカウント

コンテナ

Kubernetes クラスタとは

Kubernetes クラスタは、コンテナ化されたアプリケーションを実行するためのノードマシンのセットです。Kubernetes を実行しているときは、クラスタが実行されています。

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

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

Kubernetes クラスタの使い方

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

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

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

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

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

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

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

マスターノード:Kubernetes ノードを制御するマシン。すべてのタスクの割り当てはここで発生します。

ワーカーノード:要求に基づいて割り当てられたタスクを実行するマシン。Kubernetes マスターはこれらのノードを制御します。

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

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

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

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

Red Hat OpenShift の Kubernetes を選ぶ理由

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

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