5.5. Helm ベースの Operator
5.5.1. Helm ベースの Operator の Operator SDK の使用を開始する リンクのコピーリンクがクリップボードにコピーされました!
Operator プロジェクトを生成するための Operator SDK には、Go コードを作成せずに Kubernetes リソースを統一されたアプリケーションとしてデプロイするために、既存の Helm チャートを使用するオプションがあります。
Operator SDK によって提供されるツールおよびライブラリーを使用して Helm ベースの Operator をセットアップし、実行するための基本を示すには、Operator 開発者は Helm ベースの Nginx Operator のサンプルをビルドし、これをクラスターへデプロイすることができます。
5.5.1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Operator SDK CLI がインストールされている。
-
OpenShift CLI (
oc) v4.13 以降がインストールされている -
cluster-adminパーミッションを持つアカウントを使用して、ocで OpenShift Container Platform 4.13 クラスターにログインしている - クラスターがイメージをプルできるように、イメージをプッシュするリポジトリーを public として設定するか、イメージプルシークレットを設定している。
5.5.1.2. Helm ベースの Operator の作成とデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Operator SDK を使用して Nginx の単純な Helm ベースの Operator をビルドし、デプロイできます。
手順
プロジェクトを作成します。
プロジェクトディレクトリーを作成します。
$ mkdir nginx-operatorプロジェクトディレクトリーに移動します。
$ cd nginx-operatorhelmプラグインを指定してoperator-sdk initコマンドを実行し、プロジェクトを初期化します。$ operator-sdk init \ --plugins=helm
API を作成します。
単純な Nginx API を作成します。
$ operator-sdk create api \ --group demo \ --version v1 \ --kind Nginxこの API は、
helm createコマンドでビルトインの Helm チャートボイラープレートを使用します。Operator イメージをビルドし、プッシュします。
デフォルトの
Makefileターゲットを使用して Operator をビルドし、プッシュします。プッシュ先となるレジストリーを使用するイメージのプル仕様を使用してIMGを設定します。$ make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>Operator を実行します。
CRD をインストールします。
$ make installプロジェクトをクラスターにデプロイします。
IMGをプッシュしたイメージに設定します。$ make deploy IMG=<registry>/<user>/<image_name>:<tag>
SCC (Security Context Constraints) を追加します。
Nginx サービスアカウントには、OpenShift Container Platform で実行する特権アクセスが必要です。以下の SCC を
nginx-samplePod のサービスアカウントに追加します。$ oc adm policy add-scc-to-user \ anyuid system:serviceaccount:nginx-operator-system:nginx-sampleサンプルカスタムリソース (CR) を作成します。
サンプル CR を作成します。
$ oc apply -f config/samples/demo_v1_nginx.yaml \ -n nginx-operator-systemOperator を調整する CR を確認します。
$ oc logs deployment.apps/nginx-operator-controller-manager \ -c manager \ -n nginx-operator-system
Delete a CR.
次のコマンドを実行して CR を削除します。
$ oc delete -f config/samples/demo_v1_nginx.yaml -n nginx-operator-systemクリーンアップします。
以下のコマンドを実行して、この手順の一部として作成されたリソースをクリーンアップします。
$ make undeploy
5.5.1.3. 次のステップ リンクのコピーリンクがクリップボードにコピーされました!
- Helm ベースの Operator のビルドに関する詳細な手順は、Helm ベースの Operator の Operator SDK チュートリアル を参照してください。