在 Kubernetes 中使用边车容器

如果您的数据库在 Kubernetes 集群中运行,则可以使用 AlloyDB Omni Kubernetes 操作器向数据库集群添加边车容器。AlloyDB Omni 操作器边车容器是常规 Kubernetes 容器,可独立地与主要应用容器一起在同一个 Pod 中运行。您可以使用这些边车容器来处理应用监控、日志记录和跟踪方面的请求。

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_ARGSCONTAINER_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.name 设置为 obsdisk,并将 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_ARGSCONTAINER_COMMAND 的参数。
    • CONTAINER_NAME:容器的名称。您可以在同一个边车 CR 中包含多个容器,并且每个容器都有不同的容器名称、映像、命令和参数。
    • LOGS_PATH:AlloyDB Omni 应将日志输出到的边车容器中的路径。
  2. 注册新的或修改过的边车容器。

后续步骤