Jika database Anda berjalan di cluster Kubernetes, Anda dapat menambahkan
penampung sidecar ke cluster database menggunakan operator Kubernetes AlloyDB Omni.
Container file bantuan operator AlloyDB Omni adalah container Kubernetes reguler yang berjalan secara independen bersama container aplikasi utama dalam Pod yang sama.
Anda dapat menggunakan container pendamping ini untuk melayani permintaan pemantauan, pencatatan log, dan pelacakan aplikasi.
Container file bantuan operator AlloyDB Omni berbeda dengan
container file bantuan bawaan Kubernetes.
Untuk menambahkan penampung sidecar ke penginstalan AlloyDB Omni yang ada secara manual, Anda membuat resource kustom (CR) sidecar dan menambahkannya ke cluster database.
SIDECAR_CR_NAME: nama untuk container
sidecar Anda.
CONTAINER_IMAGE: nama file image yang akan dijalankan di container sidecar. Contoh, busybox.
CONTAINER_COMMAND: perintah untuk container
yang berjalan di Pod. Perintah dapat berupa daftar string yang dikutip.
Untuk mengetahui informasi selengkapnya, lihat
Menentukan perintah dan argumen saat Anda membuat Pod.
CONTAINER_ARGS: argumen untuk
CONTAINER_COMMAND.
CONTAINER_NAME: nama container. Anda
dapat memiliki beberapa container dalam CR sidecar yang sama, dan setiap
container memiliki nama, image, perintah, dan
argumen container yang berbeda.
Untuk memverifikasi bahwa CR sidecar telah dibuat, jalankan perintah berikut:
kubectldescribeSidecar/SIDECAR_CR_NAME
Outputnya mirip dengan hal berikut ini:
Name:SIDECAR_CR_NAMELabels:<none>
Annotations:<none>
API Version:alloydbomni.dbadmin.goog/v1Kind:SidecarMetadata:Creation Timestamp:2024-04-15T21:49:00ZFinalizers:sidecars.dbadmin.goog/finalizerGeneration:2Resource Version:2561336UID:e57f2e13-20c5-4905-b13b-39203bab36b4Spec:Sidecars:Args:CONTAINER_ARGSCommand:CONTAINER_COMMANDImage:CONTAINER_IMAGEName:CONTAINER_NAMEResources:Status:Observed Generation:2Reconciled:trueEvents:<none>
Mendaftarkan container sidecar
Untuk mendaftarkan nama container sidecar ke cluster database Anda, gunakan
perintah berikut untuk menerapkan spesifikasi yang diperbarui:
SIDECAR_CR_NAME: nama untuk container pendamping Anda.
Mengakses log dari container sidecar
Buat, atau ubah container sidecar yang ada sehingga
spec.sidecars.volumeMounts.name disetel ke obsdisk dan
spec.sidecars.volumeMounts.mountPath ke jalur yang terlihat dalam
container sidecar.
SIDECAR_CR_NAME: nama untuk container pendamping Anda.
CONTAINER_IMAGE: nama file image yang akan dijalankan di
container pendamping Anda. Contoh, busybox.
CONTAINER_COMMAND: perintah untuk container yang
berjalan di Pod. Perintah dapat berupa daftar string yang dikutip. Untuk mengetahui informasi selengkapnya, lihat
Menentukan perintah dan argumen saat Anda membuat Pod.
CONTAINER_ARGS: argumen untuk
CONTAINER_COMMAND.
CONTAINER_NAME: nama container. Anda dapat
memiliki beberapa container dalam CR sidecar yang sama, dan setiap container memiliki
nama, image, perintah, dan argumen container yang berbeda.
LOGS_PATH: jalur dalam container pendamping yang
harus digunakan AlloyDB Omni untuk menghasilkan log.
Daftarkan penampung sidecar baru atau yang dimodifikasi.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 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)."]]