第1章. 演算子がKubernetesに新しい技を教える
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
演算子は、Kubernetesアプリケーションをパッケージ化し、実行し、保守するための方法である。Kubernetesアプリケーションは、Kubernetes上にデプロイされるだけでなく、Kubernetesの設備やツールを使用し、それと連携して動作するように設計されている。
OperatorはKubernetesの抽象化に基づいて構築され、管理するソフトウェアのライフサイクル全体を自動化する。演算子はKubernetesを拡張するため、大規模で成長中のコミュニティにとって馴染みのある言葉でアプリケーション固有の自動化を提供する。アプリケーションプログラマにとって、演算子は、アプリが依存する基盤サービスのデプロイと実行を容易にする。インフラエンジニアとベンダにとって、演算子はKubernetesクラスタ上でソフトウェアを配布する一貫した方法を提供し、ポケベルが鳴る前にアプリケーションの問題を特定して修正することで、サポートの負担を軽減する。
Operatorがこれらの仕事をどのように行うかを説明し始める前に、Operatorの概念とコンポーネントを説明するためのコンテキストと共有言語を提供するために、いくつかのKubernetes用語を定義しよう。
Kubernetesの仕組み
Kubernetesは、静的なウェブサーバのようなステートレス・アプリケーションのライフサイクルを自動化する。 ステートがなければ、アプリケーションのどのインスタンスも交換可能だ。この単純なウェブサーバはファイルを取得し、訪問者のブラウザに送信する。サーバは状態を追跡したり、入力やデータを保存したりしないため、あるサーバインスタンスに障害が発生しても、Kubernetesはそれを別のインスタンスに置き換えることができる。 Kubernetesは、それぞれがクラスタ上で動作するアプリケーションのコピーであるこれらのインスタンスをレプリカと呼ぶ。
Kubernetesクラスタは、ノードと呼ばれるコンピュータの集合体だ。すべてのクラスタ作業は、クラスタのノードの1つ、いくつか、またはすべてで実行される。作業の基本単位、そしてレプリケーションの基本単位はPodだ。Podは、ネットワーク、ストレージ、共有メモリへのアクセスといった共通のリソースを持つ1つ以上のLinuxコンテナのグループだ。
注
KubernetesのPodドキュメントは、Pod抽象化に関するより詳細な情報を得るための良い出発点だ。
ハイレベルでは、Kubernetesクラスタは2つのプレーンに分けられる。 コントロールプレーンは、簡単に言えばKubernetesそのものだ。Podの集まりがコントロールプレーンを構成し、Kubernetesアプリケーションプログラミングインタフェース(API)とクラスターオーケストレーションロジックを実装する。
アプリケーションプレーン(データプレーン)は、それ以外のすべてだ。 アプリケーションポッドが実行されるノードのグループだ。通常、1つまたは複数のノードがアプリケーションの実行専用となり、1つまたは複数のノードがコントロールプレーンポッドのみを実行するために隔離されることが多い。アプリケーションポッドと同様に、コントロールプレーンコンポーネントの複数のレプリカを複数のコントローラノードで実行し、冗長性を持たせることができる。 ...