5.6.2.5.2. クラスター上でのデプロイメントとしての実行
Operator プロジェクトは、クラスター上でデプロイメントとして実行できます。
手順
以下の
makeコマンドを実行して Operator イメージをビルドし、プッシュします。以下の手順のIMG引数を変更して、アクセス可能なリポジトリーを参照します。Quay.io などのリポジトリーサイトにコンテナーを保存するためのアカウントを取得できます。イメージをビルドします。
$ make docker-build IMG=<registry>/<user>/<image_name>:<tag>注記Operator の SDK によって生成される Dockerfile は、
go buildに関するGOARCH=amd64を明示的に参照します。これは、AMD64 アーキテクチャー以外の場合はGOARCH=$TARGETARCHに修正できます。Docker は、-platformで指定された値に環境変数を自動的に設定します。Buildah では、そのために-build-argを使用する必要があります。詳細は、Multiple Architectures を参照してください。イメージをリポジトリーにプッシュします。
$ make docker-push IMG=<registry>/<user>/<image_name>:<tag>注記両方のコマンドのイメージの名前とタグ (例:
IMG=<registry>/<user>/<image_name>:<tag>) を Makefile に設定することもできます。IMG ?= controller:latestの値を変更して、デフォルトのイメージ名を設定します。
以下のコマンドを実行して CRD をデフォルトの namespace にインストールします。
$ oc apply -f target/kubernetes/memcacheds.cache.example.com-v1.yml出力例
customresourcedefinition.apiextensions.k8s.io/memcacheds.cache.example.com created以下の例のように
rbac.yamlという名前のファイルを作成します。apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: memcached-operator-admin subjects: - kind: ServiceAccount name: memcached-quarkus-operator-operator namespace: <operator_namespace> roleRef: kind: ClusterRole name: cluster-admin apiGroup: ""重要rbac.yamlファイルは、後のステップで適用されます。以下のコマンドを実行して Operator をデプロイします。
$ make deploy IMG=<registry>/<user>/<image_name>:<tag>以下のコマンドを実行して、前のステップで作成した
rbac.yamlファイルを適用してcluster-admin権限をmemcached-quarkus-operator-operatorに付与します。$ oc apply -f rbac.yaml以下のコマンドを実行して、Operator が実行されていることを確認します。
$ oc get all -n default出力例
NAME READY UP-TO-DATE AVAILABLE AGE pod/memcached-quarkus-operator-operator-7db86ccf58-k4mlm 0/1 Running 0 18s以下のコマンドを実行して
memcached-sample.yamlを適用し、memcached-samplePod を作成します。$ oc apply -f memcached-sample.yaml出力例
memcached.cache.example.com/memcached-sample created
検証
以下のコマンドを実行して、Pod が起動していることを確認します。
$ oc get all出力例
NAME READY STATUS RESTARTS AGE pod/memcached-quarkus-operator-operator-7b766f4896-kxnzt 1/1 Running 1 79s pod/memcached-sample-6c765df685-mfqnz 1/1 Running 0 18s