付録A. クラスタ内のデプロイとして演算子を実行する
クラスタの外で演算子を実行することは、テストやデバッグの目的には便利だが、本番の演算子はKubernetes デプロイとして実行する。このデプロイスタイルには、いくつかの余分な手順がある:
-
イメージを構築する。Operator SDKの
buildコマンドは、基盤となるDockerデーモンにチェインしてOperatorイメージを構築し、実行時に完全なイメージ名とバージョンを:$operator-sdkbuildjdob/visitors-operator:0.1 -
デプロイを設定する。SDKが生成するdeploy/演算子.yamlファイルをイメージの名前で更新する。更新するフィールドは
imageという名前で、以下の場所で発見できる:spec -> template -> spec -> containers
生成されたファイルのデフォルト値は
REPLACE_IMAGEで、前のコマンドで作成したイメージの名前を反映するように更新する必要がある。ビルドしたら、Quay.ioや Docker Hubなどの外部からアクセス可能なリポジトリにイメージをプッシュする。
-
CRDをデプロイする。SDKは正しく機能するスケルトンCRDを生成するが、このファイルの詳細については付録Bを参照のこと:
$kubectlapply-fdeploy/crds/*_crd.yaml -
サービスアカウントとロールをデプロイする.SDKは、演算子に必要なサービスアカウントとロールを生成する。これらを更新して、ロールの権限を、Operatorが機能するために必要な最小限のものに制限する。
ロールパーミッションを適切にスコープしたら、リソースをクラスタにデプロイする:
$kubectlapply-fdeploy/service_account.yaml$kubectlapply-fdeploy/role.yaml$kubectlapply-fdeploy/role_binding.yaml警告
ロールのバインディングには、ロールとサービスアカウントの両方が必要であるため、これらのファイルをリストの順番でデプロイする必要がある。
-
Operatorデプロイ子を作成する。最後のステップは、演算子自体をデプロイすることである。以前に編集したoperator.yamlファイルを使用して、Operator イメージを クラスタにデプロイできる:
$kubectlapply-fdeploy/operator.yaml