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, mungkin Anda telah membuat terlalu banyak resource Config Connector dari Jenis yang sama 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:

Meningkatkan interval rekonsiliasi

Anda dapat meningkatkan waktu antara Config Connector yang merekonsiliasi resource untuk menghindari kuota API. Sebaiknya tetapkan interval rekonsiliasi ke 1 jam.

Untuk meningkatkan interval rekonsiliasi, ikuti langkah-langkah di Mengonfigurasi interval rekonsiliasi.

Memisahkan resource ke 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 memisahkan resource yang ada karena Anda perlu menghapus resource yang ada dan membuatnya ulang dalam project yang berbeda. Menghapus resource dapat menyebabkan hilangnya data dengan beberapa jenis resource, seperti resource SpannerInstance atau BigtableTable. Anda harus mencadangkan data sebelum menghapusnya.

Untuk memisahkan resource Config Connector yang ada ke dalam project yang berbeda, selesaikan langkah-langkah berikut:

  1. Tentukan resource Config Connector yang ingin Anda pindahkan ke project yang berbeda.
  2. Hapus resource Config Connector. Pastikan anotasi cnrm.cloud.google.com/deletion-policy tidak ditetapkan ke abandon.
  3. Perbarui kolom spec.projectRef atau anotasi cnrm.cloud.google.com/project-id dalam konfigurasi YAML resource Config Connector yang ingin Anda pindahkan ke project baru.
  4. Berikan izin yang sesuai kepada akun layanan IAM yang digunakan oleh Config Connector di project baru.
  5. 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 project Google Cloud yang berbeda ke namespace yang berbeda tempat Config Connector diinstal dalam mode namespace, dan membagi resource ke dalam namespace yang berbeda. Untuk melakukannya, selesaikan langkah-langkah berikut:

  1. Konfigurasikan Config Connector untuk berjalan dalam mode dengan 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.

  2. Berikan izin yang sesuai ke akun layanan IAM baru untuk project yang berisi resource.

  3. Tentukan resource Config Connector yang ingin Anda pindahkan ke namespace yang berbeda.

  4. Perbarui konfigurasi YAML resource Konektor Konfigurasi dan tetapkan anotasi cnrm.cloud.google.com/deletion-policy abandon.

  5. Terapkan konfigurasi YAML yang diperbarui untuk memperbarui kebijakan penghapusan resource Config Connector.

  6. Menghapus resource Config Connector.

  7. Perbarui kolom metadata.namespace dalam konfigurasi YAML resource Config Connector yang ingin Anda pindahkan ke namespace yang berbeda.

  8. Terapkan konfigurasi YAML yang telah diperbarui 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 Google Cloud API yang mendasarinya.

Jika perlu memperbarui kolom ini, Anda dapat menggunakan resource ContainerNodePool untuk mengelola node pool tempat kolom ini tidak dapat diubah. Untuk mengelola node pool 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 Konektor Konfigurasi dan API yang mendasarinya.

Contoh berikut menunjukkan konfigurasi ContainerCluster dan ContainerNodePool dengan anotasi yang ditetapkan 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