概要
Kubernetes API は Kubernetes コントロールプレーンのフロントエンドであり、ユーザーはこれを使用して Kubernetes クラスタと対話します。API (アプリケーション・プログラミング・インタフェース) サーバーは、要求が有効かどうかを判別し、それから処理を行います。
本質的に、API は Kubernetes クラスタの管理、作成、構成に使用されるインタフェースで、ユーザーや外部コンポーネント、そしてクラスタの各部分が相互に通信する方法です。
Kubernetes コントロールプレーンの中心には、API サーバーとそれが公開する HTTP API があり、Kubernetes オブジェクトの状態をクエリして操作することができます。
Kubernetes とは
Kubernetes API を完全に理解するために、まずは Kubernetes の概要を確認しましょう。
Kubernetes は、コンテナをオーケストレーションするためのオープンソース・プラットフォームです。コンテナとは、アプリケーションをランタイム環境全体にバンドルして分離できるテクノロジーのことで、これにより、すべての機能を保持しながら、開発やプロダクションなどの各ステージと、オンプレミス、パブリッククラウド、プライベートクラウド、ハイブリッドクラウド、マルチクラウドなどの各環境の間でアプリケーションを簡単に移動できます。
そのため、コンテナ・オーケストレーション・プラットフォームとして、Kubernetes はコンテナ化アプリケーションの管理、デプロイ、スケーリングに関連する多くの手動プロセスを自動化します。
コンテナ化アプリケーションを実行しているマシン (「ノード」と呼ばれる物理サーバーまたは仮想サーバー) をグループ化することにより、クラスタを作成し、それを Kubernetes で管理およびオーケストレーションします。
単一のマシンまたはノードで実行され、リソースを共有するコンテナのグループは「ポッド」と呼ばれますが、ポッドにはコンテナを 1 つだけ含めることもできます。この場合、「ポッド」という単語を「コンテナ」という単語に置き換えることができ、依然として正しい概念です。
Red Hat のリソース
クラスタとは
Kubernetes クラスタには、コントロールプレーンとアプリケーションプレーンの 2 つの部分があります。コントロールプレーンは、API を見つける場所であり、ユーザーがクラスタと対話し、kubectl (コマンドラインツール) を使用してコマンドライン内で何を行うかを指示する方法です。API を通じて、エンドユーザー、クラスタそのもの、外部コンポーネントが相互に通信できます。
クラスタにはそれぞれ望ましい状態があり、実行するアプリケーションやワークロード、および使用するイメージや必要なリソースなどの他の構成の詳細を定義します。クラスタの望ましい状態は API を使用して設定されます。コマンドラインの kubectl ツールを通じて、あるいは API 経由でクラスタを操作することで、望ましい状態が設定または変更されます。
Kubernetes は、自動的にクラスタを管理して望ましい状態に一致させます。Kubernetes は、ワークロードに指定されたパラメーターに基づいて常に自己管理と自己修復を試みるという点で宣言的です。
Kubernetes API とオペレーター
Kubernetes オペレーター は、kubectl ツールを介して API を使い、アプリケーションをパッケージ化、デプロイ、管理する方法です。
Kubernetes では、オペレーターが Kubernetes API の機能を拡張したアプリケーション固有のコントローラーであり、ユーザーに代わって複雑なアプリケーションのインスタンスを作成、設定、管理します。オペレーターは、ドメインまたはアプリケーション固有の情報を含めることで、Kubernetes が管理するソフトウェアのライフサイクル全体を自動化できるようにします。
Red Hat の Kubernetes を選ぶ理由
オープンソース・コンテナテクノロジーのリーダーであり、コンテナ・インフラストラクチャ管理のためのさまざまなツールや製品の作成も行っている Red Hat は、Kubernetes とコンテナの導入に取り組む企業を支援します。
Red Hat® OpenShift® を使用すると、ハイブリッドクラウドおよびマルチクラウドのデプロイメントを管理するために必要なものをすべて備えた、エンタープライズ対応のオープンソース・コンテナ・プラットフォームを利用できます。現在のインフラストラクチャを最大限に活用しながら、ビジネスをクラウドに移行するお手伝いをします。
単一の統合プラットフォームの一部として、開発者は言語、ミドルウェア、フレームワーク、データベースを選択すると同時に、自動化を展開して効率と生産性を向上させることができます。
Red Hat 公式ブログ
Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。