Jump to section

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 は同じ物理クラスタ内の (複数のチームまたはプロジェクトの) 複数のクラスタを管理できます。

先進的なクラウドネイティブ・アプリケーションにより、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)

関連資料

記事

コンテナと VM

Linux コンテナと仮想マシン (VM) は、さまざまな IT コンポーネントが組み合わさってシステムの他の部分から分離している、パッケージ化されたコンピューティング環境です。

記事

コンテナ・オーケストレーションとは

コンテナ・オーケストレーションは、コンテナのデプロイメント、管理、スケーリング、ネットワーキングを自動化します。

記事

Linux コンテナとは

Linux コンテナとは、システムから分離された一連のプロセスであり、そのプロセスのサポートに必要なすべてのファイルを提供する個別のイメージから実行されます。

コンテナの詳細はこちら

製品

統合されたテスト済みのサービス一式を備えたエンタープライズ・アプリケーション・プラットフォームであり、ユーザーの選ぶインフラストラクチャを使ってアプリケーションを市場に投入するために活用できます。

リソース

トレーニング

無料のトレーニングコース

Running Containers with Red Hat Technical Overview

無料のトレーニングコース

Containers, Kubernetes and Red Hat OpenShift Technical Overview

無料のトレーニングコース

Developing Cloud-Native Applications with Microservices Architectures