Praktik terbaik untuk Config Connector
Halaman ini menjelaskan praktik terbaik yang harus Anda pertimbangkan saat menggunakan Config Connector.
Mengelola batas kuota API
Jika Anda mengalami error yang menunjukkan bahwa Anda telah melampaui batas kuota API, hal ini mungkin disebabkan oleh terlalu banyaknya resource Config Connector dengan Kind yang sama yang Anda buat dalam project kuota yang sama. Saat Anda membuat banyak resource, resource tersebut dapat menghasilkan terlalu banyak permintaan API ke endpoint API yang sama karena strategi rekonsiliasi yang digunakan Config Connector.
Salah satu cara untuk mengatasi masalah ini adalah dengan meminta penambahan kuota. Selain peningkatan kuota, jika Anda telah mengonfirmasi bahwa error kuota disebabkan oleh permintaan GET terhadap resource Google Cloud yang dikelola oleh resource Config Connector, Anda dapat mempertimbangkan salah satu opsi berikut:
- Tingkatkan interval rekonsiliasi untuk resource Config Connector Anda
- Membagi resource ke dalam beberapa project
- Mengalihkan Config Connector ke mode namespace
Meningkatkan interval rekonsiliasi
Anda dapat meningkatkan waktu antara Config Connector yang merekonsiliasi resource untuk menghindari penggunaan kuota API. Sebaiknya tetapkan interval rekonsiliasi ke 1 jam.
Untuk memperpanjang interval rekonsiliasi, ikuti langkah-langkah di Mengonfigurasi interval rekonsiliasi.
Membagi resource Anda ke dalam beberapa project
Pendekatan ini menyebarkan resource Config Connector Anda di berbagai
project. Pendekatan ini berfungsi dengan baik saat menambahkan resource baru, tetapi
dapat berisiko untuk membagi resource yang ada karena Anda perlu menghapus
resource yang ada dan membuatnya ulang di project yang berbeda. Menghapus resource dapat menyebabkan hilangnya data dengan beberapa jenis resource, seperti resource SpannerInstance
atau BigtableTable
. Anda harus mem-backup data Anda sebelum menghapusnya.
Untuk memisahkan resource Config Connector yang ada ke dalam project yang berbeda, selesaikan langkah-langkah berikut:
- Tentukan resource Config Connector yang akan dipindahkan ke project lain.
- Hapus resource Config Connector.
Pastikan anotasi
cnrm.cloud.google.com/deletion-policy
tidak ditetapkan keabandon
. - Perbarui kolom
spec.projectRef
atau anotasicnrm.cloud.google.com/project-id
dalam konfigurasi YAML resource Config Connector yang akan Anda pindahkan ke project baru. - Beri akun layanan IAM yang digunakan oleh Config Connector izin yang tepat di project baru.
- Terapkan konfigurasi YAML yang telah diperbarui untuk membuat resource Config Connector.
Beralih ke mode namespace
Anda dapat mengikat akun layanan IAM yang berbeda yang dimiliki oleh Google Cloud project yang berbeda ke namespace yang berbeda tempat Config Connector diinstal dalam mode namespace, dan membagi resource Anda ke dalam namespace yang berbeda. Untuk melakukannya, selesaikan langkah-langkah berikut:
Konfigurasi Config Connector agar berjalan dalam mode namespace. Buat akun layanan IAM baru dari project yang berbeda, dan ikatkan ke namespace yang berbeda dengan mengikuti petunjuk untuk mengonfigurasi Config Connector untuk setiap project.
Berikan izin yang tepat untuk akun layanan IAM baru ke project yang berisi resource.
Tentukan resource Config Connector yang akan dipindahkan ke namespace lain.
Perbarui konfigurasi YAML resource Config Connector dan tetapkan anotasi
cnrm.cloud.google.com/deletion-policy
abandon
.Terapkan konfigurasi YAML yang telah diperbarui untuk memperbarui kebijakan penghapusan resource Config Connector.
Perbarui kolom
metadata.namespace
dalam konfigurasi YAML resource Config Connector yang ingin Anda pindahkan ke namespace yang berbeda.Terapkan konfigurasi YAML yang telah diupdate untuk mendapatkan resource yang ditinggalkan.
Mengelola node pool di cluster GKE
Anda mungkin mengalami error saat membuat cluster dengan menerapkan resource
ContainerCluster
di Config Connector, lalu mencoba mengupdate
nodeConfig
atau kolom terkait node lainnya dengan menerapkan konfigurasi
ContainerCluster
yang diupdate. Error ini disebabkan oleh kolom yang tidak dapat diubah seperti
nodeConfig
, nodeConfig.labels
, nodeConfig.taint
, yang merupakan batasan
teknis dari
Google Cloud API yang mendasarinya.
Jika perlu memperbarui kolom ini, Anda dapat menggunakan resource
ContainerNodePool
untuk mengelola node pool tempat kolom ini tidak bersifat tetap. Untuk mengelola
kumpulan node menggunakan resource ContainerNodePool
, Anda harus menentukan
anotasi cnrm.cloud.google.com/remove-default-node-pool: "true"
. Anotasi
ini menghapus kumpulan node default yang dibuat selama pembuatan
cluster. Kemudian, untuk membuat node pool terpisah, tentukan kolom nodeConfig
di
ContainerNodePool
, bukan di ContainerCluster
. Lihat
contoh resource ContainerNodePool
untuk referensi.
Anda harus menetapkan anotasi
cnrm.cloud.google.com/state-into-spec: absent
untuk resource ContainerCluster
dan ContainerNodePool
. Anotasi
ini menghindari potensi error rekonsiliasi selama interaksi antara
pengontrol Config Connector dan API yang mendasarinya.
Contoh berikut menunjukkan konfigurasi ContainerCluster
dan ContainerNodePool
dengan setelan anotasi ini:
apiVersion: container.cnrm.cloud.google.com/v1beta1 kind: ContainerCluster metadata: name: containercluster-sample annotations: cnrm.cloud.google.com/remove-default-node-pool: "true" cnrm.cloud.google.com/state-into-spec: absent spec: description: A sample cluster. location: us-west1 initialNodeCount: 1
apiVersion: container.cnrm.cloud.google.com/v1beta1 kind: ContainerNodePool metadata: labels: label-one: "value-one" name: containernodepool-sample annotations: cnrm.cloud.google.com/state-into-spec: absent spec: location: us-west1 autoscaling: minNodeCount: 1 maxNodeCount: 3 nodeConfig: machineType: n1-standard-1 preemptible: false oauthScopes: - "https://www.googleapis.com/auth/logging.write" - "https://www.googleapis.com/auth/monitoring" clusterRef: name: containercluster-sample