Praktik terbaik untuk Config Connector
Halaman ini menjelaskan praktik terbaik yang harus Anda pertimbangkan saat menggunakan Config Connector.
Mengelola batas kuota API
Jika Anda mendapatkan error yang menunjukkan bahwa Anda telah melebihi batas kuota API, Anda mungkin telah membuat terlalu banyak resource Config Connector dari Kind yang sama dalam project kuota yang sama. Jika 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 menyelesaikan masalah ini adalah dengan meminta penambahan kuota. Selain peningkatan kuota, jika Anda telah mengonfirmasi bahwa error kuota disebabkan oleh permintaan GET pada resource Google Cloud yang dikelola oleh resource Config Connector, Anda dapat mempertimbangkan salah satu opsi berikut:
- Meningkatkan interval rekonsiliasi untuk resource Config Connector Anda
- Memisahkan resource Anda menjadi beberapa project
- Mengalihkan Config Connector ke mode dengan namespace
Meningkatkan interval rekonsiliasi
Anda dapat menambah waktu antara Config Connector saat rekonsiliasi resource untuk menghindari tercapainya kuota API. Sebaiknya tetapkan interval rekonsiliasi ke 1 jam.
Untuk meningkatkan interval rekonsiliasi, ikuti langkah-langkah dalam Mengonfigurasi interval rekonsiliasi.
Memisahkan resource Anda menjadi beberapa project
Pendekatan ini menyebarkan resource Config Connector Anda ke berbagai project. Pendekatan ini berfungsi dengan baik saat menambahkan resource baru, tetapi dapat
memecah resource yang ada dapat berisiko karena Anda perlu menghapus resource
yang ada dan membuatnya kembali pada project yang berbeda. Menghapus resource dapat
menyebabkan kehilangan data pada beberapa jenis resource, seperti resource SpannerInstance
atau
BigtableTable
. Anda harus mencadangkan data Anda sebelum menghapusnya.
Untuk membagi resource Config Connector yang ada ke dalam project yang berbeda-beda, selesaikan langkah-langkah berikut:
- Tentukan resource Config Connector mana yang ingin Anda pindahkan 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 untuk resource Config Connector yang akan Anda pindahkan ke project baru. - Berikan izin yang tepat kepada akun layanan IAM yang digunakan oleh Config Connector pada project baru.
- Terapkan konfigurasi YAML yang diperbarui untuk membuat resource Config Connector.
Beralih ke mode dengan namespace
Anda dapat mengikat berbagai akun layanan IAM yang dimiliki oleh berbagai project Google Cloud ke namespace berbeda tempat Config Connector diinstal dalam mode namespace, dan membagi resource Anda ke dalam namespace yang berbeda. Untuk melakukannya, selesaikan langkah-langkah berikut:
Mengonfigurasi Config Connector agar berjalan dalam mode namespace. Buat akun layanan IAM baru dari berbagai project, dan ikat ke namespace berbeda dengan mengikuti petunjuk untuk mengonfigurasi Config Connector untuk setiap project.
Beri akun layanan IAM baru izin yang tepat ke project yang berisi resource tersebut.
Tentukan resource Config Connector mana yang ingin Anda pindahkan ke namespace berbeda.
Update konfigurasi YAML dari 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 untuk resource Config Connector yang ingin Anda pindahkan ke namespace lain.Terapkan konfigurasi YAML yang diperbarui untuk mendapatkan resource yang diabaikan.
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 diperbarui. 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 kumpulan node tempat kolom ini tidak dapat diubah. 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 kumpulan node terpisah, tentukan kolom nodeConfig
di
ContainerNodePool
, bukan di ContainerCluster
. Lihat
contoh resource ContainerNodePool
untuk referensi.
Anda harus menyetel 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 kumpulan 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