데이터베이스가 Kubernetes 클러스터에서 실행되는 경우 AlloyDB Omni Kubernetes 연산자를 사용하여 데이터베이스 클러스터에 사이드카 컨테이너를 추가할 수 있습니다.
AlloyDB Omni 연산자 사이드카 컨테이너는 동일한 포드 내에서 기본 애플리케이션 컨테이너와 함께 독립적으로 실행되는 일반 Kubernetes 컨테이너입니다.
이러한 사이드카 컨테이너를 사용하여 애플리케이션 모니터링, 로깅, 추적 요청을 처리할 수 있습니다.
AlloyDB Omni 연산자 사이드카 컨테이너는 Kubernetes 내장 사이드카 컨테이너와 다릅니다.
기존 AlloyDB Omni 설치에 사이드카 컨테이너를 수동으로 추가하려면 사이드카 커스텀 리소스 (CR)를 만들고 데이터베이스 클러스터에 추가합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[[["\u003cp\u003eThis guide pertains specifically to Kubernetes-based AlloyDB Omni deployments, not single-server setups.\u003c/p\u003e\n"],["\u003cp\u003eAlloyDB Omni operator sidecar containers, distinct from built-in Kubernetes sidecars, run alongside the main application in the same Pod, facilitating tasks like monitoring and logging.\u003c/p\u003e\n"],["\u003cp\u003eAdding a sidecar involves creating a Sidecar custom resource (CR) with details like container image, command, arguments, and name.\u003c/p\u003e\n"],["\u003cp\u003eChanges to an active sidecar container will cause the pod to restart, which may cause database downtime.\u003c/p\u003e\n"],["\u003cp\u003eTo associate your created sidecar with your database cluster, patch your database cluster resource using the provided command, including the sidecar name.\u003c/p\u003e\n"]]],[],null,["# Use a sidecar container in Kubernetes\n\nSelect a documentation version: Current (16.8.0)keyboard_arrow_down\n\n- [Current (16.8.0)](/alloydb/omni/current/docs/kubernetes-sidecar-container)\n- [16.8.0](/alloydb/omni/16.8.0/docs/kubernetes-sidecar-container)\n- [16.3.0](/alloydb/omni/16.3.0/docs/kubernetes-sidecar-container)\n- [15.12.0](/alloydb/omni/15.12.0/docs/kubernetes-sidecar-container)\n- [15.7.1](/alloydb/omni/15.7.1/docs/kubernetes-sidecar-container)\n- [15.7.0](/alloydb/omni/15.7.0/docs/kubernetes-sidecar-container)\n- [15.5.5](/alloydb/omni/15.5.5/docs/kubernetes-sidecar-container)\n- [15.5.4](/alloydb/omni/15.5.4/docs/kubernetes-sidecar-container)\n- [15.5.2](/alloydb/omni/15.5.2/docs/kubernetes-sidecar-container)\n\n\u003cbr /\u003e\n\n| The information on this page applies only to AlloyDB Omni for Kubernetes. It does not apply to AlloyDB Omni for containers.\n\n\u003cbr /\u003e\n\nIf your database runs in a Kubernetes cluster, then you can add\nsidecar containers to your database cluster using the AlloyDB Omni Kubernetes operator.\nAlloyDB Omni operator sidecar containers are regular\nKubernetes\n[containers](https://kubernetes.io/docs/concepts/containers/) that run\nindependently alongside the main application container within the same Pod.\nYou can use these sidecar containers to serve requests for application\nmonitoring, logging, and tracing.\n\nAlloyDB Omni operator sidecar containers are distinct from\nKubernetes built-in\n[sidecar containers](https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/#pod-sidecar-containers).\n\nTo manually add a sidecar container to an existing\nAlloyDB Omni installation, you create a sidecar custom\nresource (CR) and add it to your database cluster.\n| **Caution:** Making changes to an active sidecar container restarts the Pod that it runs on, which might result in database downtime.\n\nCreate a sidecar CR\n-------------------\n\n1. Apply the following manifest:\n\n apiVersion: alloydbomni.dbadmin.goog/v1\n kind: Sidecar\n metadata:\n name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eSIDECAR_CR_NAME\u003c/span\u003e\u003c/var\u003e\n spec:\n sidecars:\n - image: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCONTAINER_IMAGE\u003c/span\u003e\u003c/var\u003e\n command: [\"\u003cvar translate=\"no\"\u003eCONTAINER_COMMAND\u003c/var\u003e\"]\n args: [\"\u003cvar translate=\"no\"\u003eCONTAINER_ARGS\u003c/var\u003e\"]\n name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCONTAINER_NAME\u003c/span\u003e\u003c/var\u003e\n\n Replace the following variables:\n - \u003cvar translate=\"no\"\u003eSIDECAR_CR_NAME\u003c/var\u003e: the name for your sidecar container.\n - \u003cvar translate=\"no\"\u003eCONTAINER_IMAGE\u003c/var\u003e: the name of the image file to run in your sidecar container. For example, `busybox`.\n - \u003cvar translate=\"no\"\u003eCONTAINER_COMMAND\u003c/var\u003e: the command for the container that runs in the Pod. The command can be a list of quoted strings. For more information, see [Define a command and arguments when you create a Pod](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/).\n - \u003cvar translate=\"no\"\u003eCONTAINER_ARGS\u003c/var\u003e: arguments for \u003cvar translate=\"no\"\u003eCONTAINER_COMMAND\u003c/var\u003e.\n - \u003cvar translate=\"no\"\u003eCONTAINER_NAME\u003c/var\u003e: the name of the container. You can have multiple containers in the same sidecar CR, and each container has a different container name, image, command, and arguments.\n2. To verify that the sidecar CR is created, run the following command:\n\n kubectl describe Sidecar/\u003cvar translate=\"no\"\u003eSIDECAR_CR_NAME\u003c/var\u003e\n\n The output is similar to the following: \n\n Name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eSIDECAR_CR_NAME\u003c/span\u003e\u003c/var\u003e\n Labels: \u003cnone\u003e\n Annotations: \u003cnone\u003e\n API Version: alloydbomni.dbadmin.goog/v1\n Kind: Sidecar\n Metadata:\n Creation Timestamp: 2024-04-15T21:49:00Z\n Finalizers:\n sidecars.dbadmin.goog/finalizer\n Generation: 2\n Resource Version: 2561336\n UID: e57f2e13-20c5-4905-b13b-39203bab36b4\n Spec:\n Sidecars:\n Args:\n \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCONTAINER_ARGS\u003c/span\u003e\u003c/var\u003e\n Command:\n \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCONTAINER_COMMAND\u003c/span\u003e\u003c/var\u003e\n Image: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCONTAINER_IMAGE\u003c/span\u003e\u003c/var\u003e\n Name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCONTAINER_NAME\u003c/span\u003e\u003c/var\u003e\n Resources:\n Status:\n Observed Generation: 2\n Reconciled: true\n Events: \u003cnone\u003e\n\nRegister a sidecar container\n----------------------------\n\nTo register the sidecar container name to your database cluster, use the\nfollowing command to apply the updated specification: \n\n kubectl patch dbclusters.alloydbomni.dbadmin.goog \u003cvar translate=\"no\"\u003eDB_CLUSTER_NAME\u003c/var\u003e -p '{\"spec\":{\"primarySpec\":{\"sidecarRef\":{\"name\":\"\u003cvar translate=\"no\"\u003eSIDECAR_CR_NAME\u003c/var\u003e\"}}}}' --type=merge\n\nReplace the following variables:\n\n- \u003cvar translate=\"no\"\u003eDB_CLUSTER_NAME\u003c/var\u003e: the name of your database cluster.\n- \u003cvar translate=\"no\"\u003eSIDECAR_CR_NAME\u003c/var\u003e: the name for your sidecar container.\n\nAccess logs from a sidecar container\n------------------------------------\n\n1. Create, or modify an existing, sidecar container so that\n `spec.sidecars.volumeMounts.name` is set to `obsdisk` and\n `spec.sidecars.volumeMounts.mountPath` to a path visible within the\n sidecar container.\n\n apiVersion: alloydbomni.dbadmin.goog/v1\n kind: Sidecar\n metadata:\n name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eSIDECAR_CR_NAME\u003c/span\u003e\u003c/var\u003e\n spec:\n sidecars:\n - image: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCONTAINER_IMAGE\u003c/span\u003e\u003c/var\u003e\n command: [\"\u003cvar translate=\"no\"\u003eCONTAINER_COMMAND\u003c/var\u003e\"]\n args: [\"\u003cvar translate=\"no\"\u003eCONTAINER_ARGS\u003c/var\u003e\"]\n name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCONTAINER_NAME\u003c/span\u003e\u003c/var\u003e\n volumeMounts:\n - name: obsdisk\n mountPath: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eLOGS_PATH\u003c/span\u003e\u003c/var\u003e\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eSIDECAR_CR_NAME\u003c/var\u003e: the name for your sidecar container.\n - \u003cvar translate=\"no\"\u003eCONTAINER_IMAGE\u003c/var\u003e: the name of the image file to run in your sidecar container. For example, `busybox`.\n - \u003cvar translate=\"no\"\u003eCONTAINER_COMMAND\u003c/var\u003e: the command for the container that runs in the Pod. The command can be a list of quoted strings. For more information, see [Define a command and arguments when you create a Pod](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/).\n - \u003cvar translate=\"no\"\u003eCONTAINER_ARGS\u003c/var\u003e: the arguments for \u003cvar translate=\"no\"\u003eCONTAINER_COMMAND\u003c/var\u003e.\n - \u003cvar translate=\"no\"\u003eCONTAINER_NAME\u003c/var\u003e: the name of the container. You can have multiple containers in the same sidecar CR, and each container has a different container name, image, command, and arguments.\n - \u003cvar translate=\"no\"\u003eLOGS_PATH\u003c/var\u003e: the path within the sidecar container that AlloyDB Omni should output logs to.\n2. [Register](#register-sidecar-container) your new, or modified, sidecar\n container.\n\nWhat's next\n-----------\n\n- [Configure AlloyDB Omni](/alloydb/omni/current/docs/configure-omni).\n- [Manage and monitor AlloyDB Omni](/alloydb/omni/current/docs/manage)."]]