第2章. 演算子を動かす
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
本章の最初のセクションでは、本書のサンプルを実行するための要件を概説し、それらの要件を満たすKubernetesクラスタへのアクセスを確立する方法についてアドバイスする。第2章では、そのクラスタを使用して、演算子をインストールして使用することで、演算子が何を行うかを調査する。
最終的には、KubernetesクラスタをOperatorのテストベッドとして使用できるようになり、マニフェストのセットから既存のOperatorをデプロイする方法を理解できるようになる。また、Operatorが変更と障害に直面してアプリケーション固有の内部状態を管理する様子を見て、後続の章で紹介するOperatorアーキテクチャとビルドツールの理解を深めることができる。
演算子ラボのセットアップ
以下の章で演算子をビルド、テスト、実行するには、cluster-admin 、Kubernetesバージョンv1.11.0以降を実行しているクラスタにアクセスする必要がある。これらの要件をすでに満たしている場合は、次のセクションにスキップできる。このセクションでは、Kubernetesクラスタをセットアップする必要がある読者、またはOperatorの開発とテストのためにローカル環境が必要な読者に対して、一般化されたアドバイスを提供する。
クラスタ・バージョンの要件
本書の例は、Kubernetesリリースv1.11からv1.16まででテストしている。検証した機能やアクションがv1.11より後のリリースを必要とする場合は、その旨を明記する。
コントロールプレーンの拡張性
Kubernetesバージョン1.2では、CRDとして知られるAPI拡張メカニズムがサードパーティリソース(TPR)として要素形式で導入された。 それ以来、図2-1に示すように、演算子が構築するコンポーネントは増殖し、成熟してきた。CRDはKubernetesバージョン1.7リリースで正式化された。
図2-1. Kubernetesリリースごとの拡張性機能
第1章で見たように、CRDは、特定のクラスタのKubernetes APIにおける新しい、サイト固有のリソース(またはAPIエンドポイント)の定義である。CRDは、Operatorパターンの最も基本的な記述である、CRを管理するカスタムコントローラに不可欠な2つの構成要素のうちの1つである。
認可要件
演算子はKubernetes自体を拡張するため、Kubernetesクラスタをデプロイするには、一般的なcluster-admin クラスタロールのような、Kubernetesクラスタへの特権的なクラスタ全体のアクセス権が必要になる。
注
あまり権限のないユーザは、演算子が管理するサービスやアプリケーション("オペランド")を利用することができる。
本番シナリオでは、 Kubernetes Role-Based Access Control(RBAC)をより詳細に設定する必要があるが、クラスタを完全に制御できることは、CRDと演算子をすぐにデプロイできることを意味する。また、Operatorとそれらが管理するアプリケーションのロール、サービスアカウント、バインディングを開発する際に、より詳細なRBACを宣言する力もある。 ...