Memecahkan masalah Config Controller

Halaman ini menunjukkan cara menyelesaikan masalah pada Pengontrol Konfigurasi.

Memecahkan masalah penginstalan

Tidak ada jaringan dengan nama default

Saat membuat instance Pengontrol Konfigurasi, Anda mungkin menerima error tentang jaringan default tidak tersedia:

Error 400: Project \"PROJECT_ID\" has no network named \"default\"., badRequest\n\n  on main.tf line 35, in resource \"google_container_cluster\" \"acp_cluster\"

Error ini terjadi jika Anda tidak menentukan jaringan yang ada dengan flag --network dan jaringan default di Google Cloud dihapus atau dinonaktifkan. Secara default, Pengontrol Konfigurasi membuat cluster edisi Google Kubernetes Engine (GKE) Enterprise yang mendukung instance Pengontrol Konfigurasi Anda di jaringan default.

Jika Anda ingin membuat instance di jaringan yang ada, tambahkan flag --network=NETWORK saat membuat instance Pengontrol Konfigurasi. Ganti NETWORK dengan nama jaringan yang ada.

Jika Anda ingin membuat instance Pengontrol Konfigurasi di jaringan default, buat ulang jaringan default dengan perintah berikut:

gcloud compute networks create default --subnet-mode=auto

Agar perintah ini berfungsi, Anda harus mengaktifkan subnet otomatis dengan tanda --subnet-mode=auto.

Setelah membuat ulang jaringan default, Anda dapat menghilangkan flag --network saat membuat instance Pengontrol Konfigurasi.

Nilai tidak valid untuk MasterIpv4CidrBlock

Pembuatan Pengontrol Konfigurasi menggunakan subnet default 172.16.0.128/28 untuk CIDp4 bidang kontrol. Jika ada konflik dalam blok CIDR IPv4, pembuatan Pengontrol Konfigurasi akan gagal dengan menampilkan error berikut:

Cloud SSA\n\nError: Error waiting for creating GKE cluster: Invalid value for field PrivateClusterConfig.MasterIpv4CidrBlock: 172.16.0.128/28 conflicts with an existing subnet in one of the peered VPCs.

Jika Anda melihat error ini, pilih CIDR IPv4 pribadi yang lain dan gunakan menggunakan flag --master-ipv4-cidr-block pada perintah gcloud anthos config controller create.

Untuk menemukan blok CIDR IPv4 yang sudah digunakan, selesaikan langkah-langkah berikut:

  1. Temukan nama peering:

    gcloud compute networks peerings list --network=NETWORK
    

    Ganti NETWORK dengan nama jaringan yang ingin Anda cari.

    Outputnya mirip dengan hal berikut ini:

    NAME                                    NETWORK   PEER_PROJECT               PEER_NETWORK                            PEER_MTU  IMPORT_CUSTOM_ROUTES  EXPORT_CUSTOM_ROUTES  STATE   STATE_DETAILS
    gke-n210ce17a4dd120e16b6-7ebf-959a-peer  default  gke-prod-us-central1-59d2  gke-n210ce17a4dd120e16b6-7ebf-0c27-net            False                 False                 ACTIVE  [2021-06-08T13:22:07.596-07:00]: Connected.
    
  2. Tampilkan CIDR IPv4 yang digunakan oleh peering:

    gcloud compute networks peerings list-routes PEERING_NAME \
        --direction=INCOMING \
        --network=NETWORK \
        --region=REGION
    

    Ganti kode berikut:

    • PEERING_NAME: nama peering yang ingin Anda cari
    • NETWORK: nama jaringan yang ingin Anda cari
    • REGION: nama region tempat instance Pengontrol Konfigurasi Anda berada

Memecahkan masalah saat menjalankan Config Controller

Kehabisan IP kumpulan node

Jika Anda melihat pesan error berikut, berarti kumpulan node Anda mungkin tidak memiliki alamat IP yang cukup:

Can't scale up because instances in managed instance groups hosting node pools ran out of IPs

Masalah ini dapat terjadi jika Anda menghilangkan flag --cluster-ipv4-cidr-block. Jika flag ini dihapus, Pengontrol Konfigurasi akan ditetapkan secara default ke rentang CIDR Pod /20. Rentang ini memberi Anda maksimum 16 node.

Jika memerlukan lebih banyak node, hapus instance Pengontrol Konfigurasi karena Anda tidak dapat mengubah blok CIDR setelah dibuat. Saat Anda membuat ulang instance Config Controller, gunakan parameter opsional --cluster-ipv4-cidr-block dan tentukan CIDR range or netmask size.

Informasi dasbor tidak ada

Jika Anda tidak melihat detail untuk Pengontrol Konfigurasi di dasbor Konsol Google Cloud, akun layanan default yang digunakan oleh Pengontrol Konfigurasi mungkin tidak memiliki izin Kemampuan Observabilitas Google Cloud yang diperlukan.

Untuk memberikan izin ini, gunakan perintah berikut:

# Cloud Monitoring metrics permissions
gcloud projects add-iam-policy-binding PROJECT_ID \
    --role=roles/monitoring.metricWriter \
    --condition=None \
    --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role=roles/stackdriver.resourceMetadata.writer \
    --condition=None \
    --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role=roles/opsconfigmonitoring.resourceMetadata.writer \
    --condition=None \
    --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"

# Cloud Logging permissions
gcloud projects add-iam-policy-binding PROJECT_ID \
    --role=roles/logging.logWriter \
    --condition=None \
    --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"

# Cloud Trace permissions\
gcloud projects add-iam-policy-binding PROJECT_ID \
    --role=roles/cloudtrace.agent \
    --condition=None \
    --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda membuat instance Pengontrol Konfigurasi
  • PROJECT_NUMBER: nomor project Google Cloud Anda

Memecahkan masalah komponen

Karena instance Pengontrol Konfigurasi Anda sudah diinstal sebelumnya dengan Pengontrol Kebijakan, Config Sync, dan Config Connector, Anda mungkin mengalami masalah dengan komponen ini. Untuk mempelajari cara memecahkan masalah komponen ini, lihat halaman berikut:

Bagian berikut memberikan saran untuk beberapa masalah umum yang mungkin Anda temui saat menggunakan Pengontrol Konfigurasi dengan komponen ini.

Error sinkronisasi

Konfigurasi dalam sumber tepercaya Anda (misalnya, repositori Git atau image OCI) disinkronkan ke instance Pengontrol Konfigurasi dengan Config Sync. Periksa error dalam proses sinkronisasi ini menggunakan perintah nomos status:

nomos status  --contexts $(kubectl config current-context)

Memecahkan masalah resource Config Connector

Kolom dan resource yang tidak dapat diubah

Beberapa kolom di resource Google Cloud pokok tidak dapat diubah, seperti project ID atau nama jaringan VPC Anda. Config Connector memblokir pengeditan pada kolom tersebut dan tidak dapat menjalankan perubahan. Jika ingin mengedit salah satu kolom yang tidak dapat diubah ini, Anda harus menghapus resource asli (melalui Git) sebelum menambahkannya kembali dengan nilai pilihan Anda.

Resource macet

Terkadang, resource mungkin gagal dihapus dengan benar (seperti yang dilaporkan oleh nomos status). Anda dapat memperbaiki masalah ini dengan menghapus finalizer pada resource, lalu menghapus resource secara manual.

Misalnya, untuk menghapus IAMPolicyMember yang macet, jalankan perintah berikut:

kubectl patch IAMPolicyMember logging-sa-iam-permissions \
    -p '{"metadata":{"finalizers":[]}}' --type=merge -n config-control
kubectl delete IAMPolicyMember logging-sa-iam-permissions -n config-control

Langkah selanjutnya