在 Kubernetes 中使用边车容器

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

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

AlloyDB Omni Operator 的 Sidecar 容器不同于 Kubernetes 内置的 Sidecar 容器

如需手动将边车容器添加到现有 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:包含要在 Sidecar 容器中运行的映像的文件的名称,例如 busybox
    • CONTAINER_COMMAND:在 Pod 中运行的容器的命令。该命令可以是带引号的字符串列表。如需了解详情,请参阅在创建 Pod 时定义命令和参数
    • CONTAINER_ARGS:在 Pod 中运行的容器的命令的参数。
    • CONTAINER_NAME:容器的名称。您可以在同一个边车 CR 中包含多个容器,每个容器都有不同的容器名称、映像、命令和参数。
  2. 如需验证是否已创建 sidecar 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:要应用于边车容器的名称。

后续步骤