Kubernetes でサイドカー コンテナを使用する

データベースが Kubernetes クラスタで実行されている場合は、AlloyDB Omni Kubernetes オペレーターを使用して、サイドカー コンテナをデータベース クラスタに追加できます。AlloyDB Omni オペレーター サイドカー コンテナは、同じ Pod 内のメイン アプリケーション コンテナと並行して独立して実行される通常の Kubernetes コンテナです。これらのサイドカー コンテナを使用して、アプリケーションのモニタリング、ロギング、トレースのリクエストを処理できます。

AlloyDB Omni オペレーター サイドカー コンテナは、Kubernetes 組み込みのサイドカー コンテナとは異なります。

既存の AlloyDB Omni インストールにサイドカー コンテナを手動で追加するには、サイドカー カスタム リソース(CR)を作成し、データベース クラスタに追加します。

サイドカー CR を作成する

  1. 次のマニフェストを適用します。

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: Sidecar
    metadata:
      name: SIDECAR_CR_NAME
    spec:
      sidecars:
      - image: CONTAINER_IMAGE
        command: ["CONTAINER_COMMAND"]
        args: ["CONTAINER_ARGS"]
        name: CONTAINER_NAME
    

    次の変数を置き換えます。

    • SIDECAR_CR_NAME: サイドカー コンテナの名前。
    • CONTAINER_IMAGE: サイドカー コンテナで実行するイメージ ファイルの名前。例: busybox
    • CONTAINER_COMMAND: Pod で実行されるコンテナのコマンド。コマンドは、引用符で囲まれた文字列のリストにできます。詳細については、Pod の作成時にコマンドと引数を定義するをご覧ください。
    • CONTAINER_ARGS: CONTAINER_COMMAND の引数。
    • CONTAINER_NAME: コンテナの名前。同じサイドカー CR に複数のコンテナを含めることができます。各コンテナには、異なるコンテナ名、イメージ、コマンド、引数があります。
  2. サイドカー CR が作成されたことを確認するには、次のコマンドを実行します。

    kubectl describe Sidecar/SIDECAR_CR_NAME

    出力は次のようになります。

    Name:  SIDECAR_CR_NAME
    Labels:       <none>
    Annotations:  <none>
    API Version:  alloydbomni.dbadmin.goog/v1
    Kind:         Sidecar
    Metadata:
      Creation Timestamp:  2024-04-15T21:49:00Z
      Finalizers:
        sidecars.dbadmin.goog/finalizer
      Generation:        2
      Resource Version:  2561336
      UID:               e57f2e13-20c5-4905-b13b-39203bab36b4
    Spec:
      Sidecars:
        Args:
          CONTAINER_ARGS
        Command:
          CONTAINER_COMMAND
        Image:  CONTAINER_IMAGE
        Name:   CONTAINER_NAME
        Resources:
    Status:
      Observed Generation:  2
      Reconciled:           true
    Events:                 <none>
    

サイドカー コンテナを登録する

サイドカー コンテナ名をデータベース クラスタに登録するには、次のコマンドを使用して更新された仕様を適用します。

kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"primarySpec":{"sidecarRef":{"name":"SIDECAR_CR_NAME"}}}}' --type=merge

次の変数を置き換えます。

  • DB_CLUSTER_NAME: データベース クラスタの名前。
  • SIDECAR_CR_NAME: サイドカー コンテナの名前。

サイドカー コンテナからログにアクセスする

  1. spec.sidecars.volumeMounts.nameobsdisk に設定され、spec.sidecars.volumeMounts.mountPath がサイドカー コンテナ内で表示されるパスになるように、既存のサイドカー コンテナを作成または変更します。

      apiVersion: alloydbomni.dbadmin.goog/v1
      kind: Sidecar
      metadata:
        name: SIDECAR_CR_NAME
      spec:
        sidecars:
        - image: CONTAINER_IMAGE
          command: ["CONTAINER_COMMAND"]
          args: ["CONTAINER_ARGS"]
          name: CONTAINER_NAME
          volumeMounts:
            - name: obsdisk
              mountPath: LOGS_PATH
    

    次のように置き換えます。

    • SIDECAR_CR_NAME: サイドカー コンテナの名前。
    • CONTAINER_IMAGE: サイドカー コンテナで実行するイメージ ファイルの名前。例: busybox
    • CONTAINER_COMMAND: Pod で実行されるコンテナのコマンド。コマンドは、引用符で囲まれた文字列のリストにできます。詳細については、Pod の作成時にコマンドと引数を定義するをご覧ください。
    • CONTAINER_ARGS: CONTAINER_COMMAND の引数。
    • CONTAINER_NAME: コンテナの名前。同じサイドカー CR に複数のコンテナを含めることができます。各コンテナには、異なるコンテナ名、イメージ、コマンド、引数があります。
    • LOGS_PATH: AlloyDB Omni がログを出力するサイドカー コンテナ内のパス。
  2. 新しいサイドカー コンテナまたは変更したサイドカー コンテナを登録します。

次のステップ