Secara default, operator Kubernetes AlloyDB Omni menggunakan cert-manager untuk menyediakan serangkaian sertifikat TLS untuk setiap cluster database. Selain sertifikat server database, operator juga membuat sertifikat untuk komponen control plane guna memastikan koneksi internal juga aman. Secara default, setiap sertifikat ditandatangani oleh penerbit yang dikelola oleh operator.
Mulai dari operator AlloyDB Omni versi 1.6.0, jika Anda lebih memilih semua sertifikat, termasuk sertifikat untuk komponen bidang kontrol, untuk dirantai kembali ke CA root tepercaya Anda sendiri, Anda dapat mengonfigurasi operator untuk menggunakan penerbit pilihan Anda. Hal ini memungkinkan Anda merangkai semua sertifikat ke infrastruktur kunci publik (PKI) Anda sendiri, termasuk sertifikat yang digunakan untuk fungsi bidang kontrol, tanpa mengekspos detail implementasi setiap entitas internal.
Sebelum memulai
Untuk mengonfigurasi penerbit sertifikat, Anda harus membuat penerbit cert-manager jenis ClusterIssuer atau Issuer yang terkait dengan CA yang ingin Anda gunakan untuk menandatangani sertifikat. Operator AlloyDB Omni mereferensikan penerbit ini saat membuat sertifikat.
Mengonfigurasi penerbit kustom
Anda dapat mengonfigurasi penerbit sertifikat kustom untuk cluster database, operator AlloyDB Omni, dan PgBouncer.
Sertifikat cluster database
Fitur ini mengharuskan controlPlaneAgentsVersion cluster database yang relevan dalam manifesnya adalah 1.6.0 atau yang lebih tinggi.
Ada dua kolom spesifikasi cluster database untuk mengonfigurasi penerbit sertifikat:
spec.primarySpec.dataPlaneCertIssuer: referensi ke penerbit cert-manager yang menyediakan sertifikat bidang data. CA penerbit adalah CA yang dapat dipercaya oleh klien database untuk memverifikasi database selama koneksi TLS.spec.primarySpec.controlPlaneAgentsCertIssuer: referensi ke penerbit cert-manager yang menyediakan sertifikat bidang kontrol. Sertifikat ini digunakan untuk koneksi internal.
spec:
primarySpec:
tls:
dataPlaneCertIssuer:
name: DATA_PLANE_ISSUER_NAME
kind: DATA_PLANE_ISSUER_KIND
controlPlaneAgentsCertIssuer:
name: CONTROL_PLANE_ISSUER_NAME
kind: CONTROL_PLANE_ISSUER_KIND
Ganti kode berikut:
DATA_PLANE_ISSUER_NAME: nama penerbit cert-manager yang menyediakan sertifikat bidang data, seperti untuk server database.DATA_PLANE_ISSUER_KIND: harus berupaIssueratauClusterIssuer.CONTROL_PLANE_ISSUER_NAME: nama penerbit cert-manager yang menyediakan sertifikat bidang kontrol untuk komponen internal.CONTROL_PLANE_ISSUER_KIND: harus berupaIssueratauClusterIssuer.
Sertifikat operator
Langkah-langkah untuk mengonfigurasi penerbit cert-manager untuk sertifikat operator bergantung pada metode yang digunakan untuk menginstal AlloyDB Omni.
Mengonfigurasi menggunakan Helm
Jika Anda menginstal operator AlloyDB Omni versi 1.6.0 atau yang lebih baru untuk pertama kalinya, gunakan penginstalan Helm dan tetapkan nilai yang sesuai. Hal ini mengasumsikan bahwa Anda mengikuti petunjuk penginstalan.
helm install alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \
--create-namespace \
--namespace alloydb-omni-system \
--set operatorCertIssuer.certManagerIssuerName="OPERATOR_CERT_ISSUER_NAME" \
--set operatorCertIssuer.certManagerIssuerKind="OPERATOR_CERT_ISSUER_KIND" \
--atomic \
--timeout 5m
Jika Anda sudah menginstal operator dan perlu menyetel penerbit sertifikat, gunakan helm upgrade untuk menyetel nilai yang sesuai:
helm upgrade alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \
--create-namespace \
--namespace alloydb-omni-system \
--set operatorCertIssuer.certManagerIssuerName="OPERATOR_CERT_ISSUER_NAME" \
--set operatorCertIssuer.certManagerIssuerKind="OPERATOR_CERT_ISSUER_KIND" \
--atomic \
--timeout 5m
Ganti kode berikut:
OPERATOR_CERT_ISSUER_NAME: nama penerbit cert-manager yang menyediakan sertifikat operator, yang digunakan untuk koneksi internal.OPERATOR_CERT_ISSUER_KIND: harus berupaIssueratauClusterIssuer.
Mengonfigurasi menggunakan Operator Lifecycle Manager
Jika Anda menggunakan Operator Lifecycle Manager (OLM) untuk menginstal operator AlloyDB Omni, Anda dapat mengubah kolom spec.config.env resource Langganan untuk menyetel variabel lingkungan CERT_MANAGER_ISSUER_NAME dan CERT_MANAGER_ISSUER_KIND Deployment operator.
spec:
config:
env:
- name: CERT_MANAGER_ISSUER_NAME
value: OPERATOR_CERT_ISSUER_NAME
- name: CERT_MANAGER_ISSUER_KIND
value: OPERATOR_CERT_ISSUER_KIND
Ganti kode berikut:
OPERATOR_CERT_ISSUER_NAME: nama penerbit cert-manager yang menyediakan sertifikat operator, yang digunakan untuk koneksi internal.OPERATOR_CERT_ISSUER_KIND: harus berupaIssueratauClusterIssuer.
Sertifikat PgBouncer
Untuk mendukung penerbit kustom, pengontrol PgBouncer dapat memeriksa kolom spec.primarySpec.tls.dataPlaneCertIssuer DBCluster dan menggunakannya untuk menyediakan sertifikat PgBouncer. Hal ini memastikan bahwa PgBouncer menggunakan sertifikat dari CA yang sama dengan database.
Verifikasi
Untuk memverifikasi bahwa Deployment operator dalam kondisi baik dan variabel lingkungan CERT_MANAGER_ISSUER_NAME dan CERT_MANAGER_ISSUER_KIND telah ditetapkan, jalankan perintah berikut:
kubectl get deployments local-controller-manager -n alloydb-omni-system -o yaml
Untuk memverifikasi bahwa penerbit yang benar digunakan, periksa objek Sertifikat sebagai berikut:
kubectl get certificate -n NAMESPACE
Periksa kolom issuerRef di output untuk setiap sertifikat guna mengonfirmasi bahwa sertifikat tersebut cocok dengan penerbit kustom Anda.