Menu Close
Settings Close

Language and Page Formatting Options

5.4. Ansible ベース Operator

5.4.1. Ansible ベースの Operator の Operator SDK の使用を開始する

Operator プロジェクトを生成するための Operator SDK には、Go コードを作成せずに Kubernetes リソースを統一されたアプリケーションとしてデプロイするために、既存の Ansible Playbook およびモジュールを使用するオプションがあります。

Operator SDK によって提供されるツールおよびライブラリーを使用して Ansible ベースの Operator をセットアップし、実行するための基本を示すには、Operator 開発者は Ansible ベースの Memcached Operator のサンプルをビルドして、分散キー/値のストアを作成し、クラスターへデプロイすることができます。

5.4.1.1. 前提条件

5.4.1.2. Ansible ベース Operator の作成およびデプロイ

Operator SDK を使用して、Memcached の単純な Ansible ベースの Operator をビルドし、デプロイできます。

手順

  1. プロジェクトを作成します。

    1. プロジェクトディレクトリーを作成します。

      $ mkdir memcached-operator
    2. プロジェクトディレクトリーに移動します。

      $ cd memcached-operator
    3. ansible プラグインを指定して operator-sdk init コマンドを実行し、プロジェクトを初期化します。

      $ operator-sdk init \
          --plugins=ansible \
          --domain=example.com
  2. API を作成します。

    単純な Memcached API を作成します。

    $ operator-sdk create api \
        --group cache \
        --version v1 \
        --kind Memcached \
        --generate-role 1
    1
    API の Ansible ロールを生成します。
  3. Operator イメージをビルドし、プッシュします。

    デフォルトの Makefile ターゲットを使用して Operator をビルドし、プッシュします。プッシュ先となるレジストリーを使用するイメージのプル仕様を使用して IMG を設定します。

    $ make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>
  4. Operator を実行します。

    1. CRD をインストールします。

      $ make install
    2. プロジェクトをクラスターにデプロイします。IMG をプッシュしたイメージに設定します。

      $ make deploy IMG=<registry>/<user>/<image_name>:<tag>
  5. サンプルカスタムリソース (CR) を作成します。

    1. サンプル CR を作成します。

      $ oc apply -f config/samples/cache_v1_memcached.yaml \
          -n memcached-operator-system
    2. Operator を調整する CR を確認します。

      $ oc logs deployment.apps/memcached-operator-controller-manager \
          -c manager \
          -n memcached-operator-system

      出力例

      ...
      I0205 17:48:45.881666       7 leaderelection.go:253] successfully acquired lease memcached-operator-system/memcached-operator
      {"level":"info","ts":1612547325.8819902,"logger":"controller-runtime.manager.controller.memcached-controller","msg":"Starting EventSource","source":"kind source: cache.example.com/v1, Kind=Memcached"}
      {"level":"info","ts":1612547325.98242,"logger":"controller-runtime.manager.controller.memcached-controller","msg":"Starting Controller"}
      {"level":"info","ts":1612547325.9824686,"logger":"controller-runtime.manager.controller.memcached-controller","msg":"Starting workers","worker count":4}
      {"level":"info","ts":1612547348.8311093,"logger":"runner","msg":"Ansible-runner exited successfully","job":"4037200794235010051","name":"memcached-sample","namespace":"memcached-operator-system"}

  6. クリーンアップします。

    以下のコマンドを実行して、この手順の一部として作成されたリソースをクリーンアップします。

    $ make undeploy

5.4.1.3. 次のステップ