TimesTenClassicオブジェクトの管理の一時停止

これらのセクションでは、オペレータによるTimesTenClassicオブジェクトの管理を一時停止する理由と、その方法について説明します。

管理の一時停止について

オペレータは、TimesTenインスタンスおよび各TimesTenClassicオブジェクトに関連付けられたデータベースの状態を定期的に調べます。機能しないものがあれば、修復するための処理を実行します。メンテナンス操作を手動で実行する必要がある場合があります。このような状況では、オペレータが干渉して修復操作を実行しようとしないようにする必要があります。

(timesten-operatorのデプロイメントを削除することで)オペレータを停止できます。この処理により、オペレータが干渉しなくなります。詳細は、「手動制御に戻す」を参照してください。ただし、複数のTimesTenClassicオブジェクトがある場合にオペレータを削除すると、1つのオブジェクトのみを手動で操作する必要があるときにすべてのTimesTenClassicオブジェクトの管理が妨げられます。

または、1つのTimesTenClassicオブジェクトに対して.spec.ttspec.stopManagingデータ項目を指定することで、このTimesTenClassicオブジェクトに対する処理を実行しないようにオペレータに指示することもできます。この要素の詳細は、TimesTenClassicSpecSpecを参照してください。オペレータは、.spec.ttspec.stopManagingの値を調べ、前回それを調べた後に変更されていた場合は、そのTimesTenClassicオブジェクトの状態をManualInterventionRequiredに変更します。これにより、オペレータは、TimesTenポッド、コンテナ、インスタンスおよびTimesTenClassicオブジェクトに関連付けられたデータベースのステータスを調べなくなります。オペレータは、オブジェクトまたはそのポッドに対して処理を行いません。

オペレータで再びそのTimesTenClassicオブジェクトが管理されるようにする場合は、.spec.ttspec.reexamineデータ項目の値を変更します。ManualInterventionRequired状態と.spec.ttspec.reexamineデータ項目の詳細は、「ManualInterventionRequired状態について」を参照してください。

この方法では、timesten-operatorのデプロイメントを削除せずに、TimesTenに対して手動操作を実行できます。

管理の一時停止

この例では、Kubernetesクラスタ内で実行されているTimesTenClassicオブジェクトのいずれかの管理を停止するよう、.spec.ttspec.stopManagingデータ項目の使用によってオペレータに指示する方法を示します。この例では、実行中の2つのTimesTenClassicオブジェクト(sampleおよびsample2)があります。オブジェクトの1つ(この例ではsample)に関連付けられているTimesTenデータベースで手動メンテナンス操作を実行する必要があります。オペレータによるこのsample TimesTenClassicオブジェクトの管理を停止させる必要があります。ただし、オペレータでもう1つのTimesTenClassicオブジェクト(この例ではsample2)の管理を続行する必要があります。

次のステップを実行します。

  1. 実行中のポッドを確認します。
    % kubectl get pods
    NAME                                        READY   STATUS    RESTARTS   AGE
    sample-0                                    2/2     Running   0          6m33s
    sample-1                                    2/2     Running   0          6m32s
    sample2-0                                   2/2     Running   0          6m32s
    sample2-1                                   2/2     Running   0          6m32s
    timesten-operator-846cb5c97c-cxbl2          1/1     Running   0          4d20h
    
  2. sample TimesTenClassicオブジェクトがNormal状態であることを確認します。このオブジェクトに関連付けられたTimesTenデータベースでメンテナンスを実行する必要があります。
    % kubectl get ttc sample
    NAME     STATE    ACTIVE     AGE
    sample   Normal   sample-0   13m
    
  3. .spec.ttspec.stopManaging値を設定します。値は、TimesTenClassicオブジェクトの現在の値と異なる必要があります。オペレータは、この値を調べて最後の反復以降に変更されたことに気付くと、適切な処理を実行します。

    kubectl editコマンドを使用して、TimesTenClassicオブジェクトを編集します。

    • ファイル内に.spec.ttspec.stopManagingの行がある場合は、その値を変更します。現在の値と異なる必要があります。

    • ファイル内に.spec.ttspec.stopManagingの行がない場合は、行を追加して値を指定します。

    この例では、.spec.ttspec.stopManagingの行はありません。この例では、.spec.ttspec.stopManagingの行を追加し、.spec.ttspec.stopManagingの値をApril21Stop1に設定します(boldで表示)。

    ノート: 出力のすべては示していません。

    % kubectl edit timestenclassic sample
    # Please edit the object below. Lines beginning with a '#' will be ignored,
    # and an empty file will abort the edit. If an error occurs while saving this 
    # file will be reopened with the relevant failures.
    #
    apiVersion: timesten.oracle.com/v1
    kind: TimesTenClassic
    metadata:
    ...
      name: sample
      namespace: mynamespace
    ...
    repCreateStatement: |
      create active standby pair
        "{{tt-name}}" on "{{tt-node-0}}",
        "{{tt-name}}" on "{{tt-node-1}}"
      RETURN TWOSAFE
      store "{{tt-name}}" on "{{tt-node-0}}"
        PORT {{tt-rep-port}} FAILTHRESHOLD 0 TIMEOUT 999
      store "{{tt-name}}" on "{{tt-node-1}}"
        PORT {{tt-rep-port}} FAILTHRESHOLD 0 TIMEOUT 999
    spec:
      ttspec:
        bothDownBehavior: Best
        dbConfigMap:
        - sample
        image: container-registry.oracle.com/timesten/timesten:22.1.1.19.0
        imagePullSecret: sekret
        storageClassName: oci-bv
        storageSize: 250Gi
        stopManaging: April21Stop1
    ...
    timestenclassic.timesten.oracle.com/sample edited
    
  4. kubectl getコマンドを使用して、sample TimesTenClassicオブジェクトの状態を確認します。sample TimesTenClassicオブジェクトがManualInterventionRequired状態に移行していることに注意してください。これは、.spec.ttspec.stopManaging値を新しい値に変更した後の予想される動作です。
    % kubectl get ttc sample
    NAME     STATE                        ACTIVE     AGE
    sample   ManualInterventionRequired   sample-0   15m
    

sample TimesTenClassicオブジェクトはManualInterventionRequired状態です。オペレータが、sample TimesTenClassicオブジェクトの監視および管理を一時停止しました。このTimesTenClassicオブジェクトまたはそのポッドに対してそれ以上の処理は実行されません。これで、TimesTenデータベースで手動操作を実行できます。このような操作を完了し、オペレータによる管理を再開する準備ができたら、「1つのデータベースの起動について」に進みます。