在 Kubernetes 中使用边车容器

如果您的数据库在 Kubernetes 集群中运行,则可以向数据库集群添加边车容器。边车容器与主容器一起独立运行,可处理应用监控、日志记录和跟踪方面的请求。您可以使用针对 AlloyDB Omni 的自定义代理将日志、指标和跟踪记录导出到您选择的后端。

如果您的数据库在 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_ARGS:用于 Pod 中运行的容器的命令的参数。
    • CONTAINER_NAME:容器的名称。您可以在同一个边车 CR 中包含多个容器,并且每个容器都有不同的容器名称、映像、命令和参数。
  2. 如需验证是否已创建边车 CR,请运行以下命令:

    kubectl describe 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>
    

注册边车容器

如需将边车容器名称注册到数据库集群,请完成以下步骤:

  1. sidecarRef 属性添加到清单中的数据库集群 spec 对象规范:

    sidecarRef:
      name: SIDECAR_CR_NAME
    
  2. 使用以下命令应用更新后的规范:

      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:要应用于边车容器的名称。

后续步骤