Halaman ini menjelaskan Google Cloud resource yang perlu Anda buat dan konfigurasi sebelum membuat cluster.
Sebelum memulai
Buat project Google Cloud dan akun penagihan.
Jika Anda bukan Google Cloud pemilik project, minta pemilik project memberi Anda peran Identity and Access Management (IAM) berikut:
Peran Tujuan roles/compute.viewer Wajib: Diperlukan saat bmctl
memvalidasi kolom clusterOperations.location dalam file konfigurasi cluster.roles/iam.serviceAccountAdmin Wajib: Diperlukan untuk membuat akun layanan yang diperlukan Google Distributed Cloud. roles/iam.securityAdmin Wajib: Diperlukan untuk memberikan peran IAM ke akun layanan yang diperlukan Google Distributed Cloud. roles/iam.serviceAccountKeyAdmin Wajib: Diperlukan untuk membuat file kunci JSON untuk akun layanan yang diperlukan Google Distributed Cloud. roles/serviceusage.serviceUsageAdmin Wajib: Diperlukan untuk mengaktifkan Google API yang diperlukan Google Distributed Cloud. roles/gkeonprem.admin Opsional: Diperlukan jika Anda ingin membuat cluster menggunakan klien GKE On-Prem API atau mengonfigurasi cluster agar dikelola oleh GKE On-Prem API. roles/gkehub.viewer
roles/container.viewerOpsional: Diperlukan jika Anda ingin mengakses halaman GKE Enterprise dan Google Kubernetes Engine di konsol Google Cloud. Untuk mengetahui informasi tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Mengaktifkan API
Beberapa Google API harus diaktifkan di project Google Cloud terkait. Google Distributed Cloud menggunakan API saat membuat cluster. API ini juga diperlukan untuk mempertahankan koneksi ke Google Cloud. Koneksi ke Google Cloud memungkinkan Google Distributed Cloud menggunakan Cloud Logging dan Cloud Monitoring serta fitur fleet seperti Cloud Service Mesh, Config Sync, Policy Controller, dan Config Controller.
Jika akan menggunakan alat bmctl
untuk membuat cluster, Anda dapat menyertakan
flag --enable-apis
saat menjalankan bmctl create config
, dan bmctl
akan
mengaktifkan API yang tercantum dalam perintah gcloud services enable
berikut. Jika
Anda akan menggunakan klien GKE On-Prem API untuk membuat
cluster admin
atau cluster pengguna,
Anda harus mengaktifkan API sebelum membuat cluster.
Untuk mengaktifkan API, jalankan perintah berikut:
Login ke Google Cloud CLI:
gcloud auth login
Mengaktifkan API berikut:
gcloud services enable --project=PROJECT_ID \ anthos.googleapis.com \ anthosaudit.googleapis.com \ anthosgke.googleapis.com \ cloudresourcemanager.googleapis.com \ compute.googleapis.com \ connectgateway.googleapis.com \ container.googleapis.com \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ gkeonprem.googleapis.com \ iam.googleapis.com \ kubernetesmetadata.googleapis.com \ logging.googleapis.com \ monitoring.googleapis.com \ opsconfigmonitoring.googleapis.com \ serviceusage.googleapis.com \ stackdriver.googleapis.com \ storage.googleapis.com
Dengan pengecualian
gkeonprem.googleapis.com
, Google API ini diperlukan untuk project Anda. Dua API berikut hanya diperlukan untuk versi 1.29 dan yang lebih tinggi:compute.googleapis.com
kubernetesmetadata.googleapis.com
Jika menginstal cluster di balik proxy, Anda harus menambahkan banyak API ini ke daftar koneksi yang diizinkan. Untuk mengetahui daftar API dan endpoint yang harus Anda tambahkan ke daftar yang diizinkan dan alasan aksesnya, lihat Menginstal di balik proxy .
Untuk melihat API dan layanan yang diaktifkan di project Anda, jalankan perintah berikut:
gcloud services list --project=PROJECT_ID \ --enabled
Konfigurasi akun layanan
Untuk menggunakan Google API, Google Distributed Cloud memerlukan akun layanan yang dikonfigurasi dengan peran IAM tertentu di project Google Cloud terkait. Sebagai praktik terbaik, Anda harus membuat akun layanan terpisah untuk tujuan yang berbeda, terutama di lingkungan produksi.
Jika akan menggunakan alat bmctl
untuk membuat cluster, Anda dapat menyertakan
tanda --create-service-accounts
saat menjalankan bmctl create config
agar
bmctl
membuat akun layanan dengan peran IAM yang diperlukan.
Jika Anda akan menggunakan klien GKE On-Prem API untuk membuat cluster admin, secara default, perintah bmctl register bootstrap
akan membuat akun layanan dengan peran IAM yang diperlukan saat Anda menjalankan perintah untuk membuat cluster bootstrap.
Akun layanan juga diperlukan untuk pembuatan cluster pengguna, tetapi akun layanan akan dibuat dan dikonfigurasi saat membuat cluster admin yang mengelola cluster pengguna.
Tabel berikut menjelaskan akun layanan yang dibuat secara otomatis:
Akun layanan | Tujuan | Peran |
---|---|---|
anthos-baremetal-gcr | Google Distributed Cloud menggunakan akun layanan ini untuk mendownload image container dari Container Registry. | Tidak ada |
anthos-baremetal-connect | Agen Connect menggunakan akun layanan ini untuk mempertahankan koneksi antara cluster Anda dan Google Cloud. Hal ini memungkinkan akses ke cluster dan fitur pengelolaan beban kerja, termasuk konsol Google Cloud dan connect gateway untuk berinteraksi dengan cluster Anda. | roles/gkehub.connect |
anthos-baremetal-register | Agen Connect menggunakan akun layanan ini untuk mendaftarkan cluster Anda ke fleet. | roles/gkehub.admin |
anthos-baremetal-cloud-ops | Agen Stackdriver menggunakan akun layanan ini untuk mengekspor log dan metrik dari cluster ke Cloud Logging dan Cloud Monitoring. |
roles/logging.logWriter roles/monitoring.metricWriter roles/stackdriver.resourceMetadata.writer roles/opsconfigmonitoring.resourceMetadata.writer roles/monitoring.dashboardEditor roles/monitoring.viewer roles/serviceusage.serviceUsageViewer roles/kubernetesmetadata.publisher |
Mengonfigurasi akun layanan secara manual
Jika mau, Anda dapat membuat akun layanan secara manual, mengonfigurasinya dengan
peran yang diperlukan, dan mendownload file kunci JSON sebelum membuat cluster.
Jika menggunakan bmctl
untuk membuat cluster, Anda menambahkan referensi ke file kunci JSON ke file konfigurasi cluster yang sesuai. Sebagai contoh,
lihat Mengedit file konfigurasi.
Jika menggunakan GKE On-Prem API untuk membuat cluster admin, Anda dapat
menentukan file kunci
saat menjalankan bmctl register bootstrap
untuk membuat cluster bootstrap.
Untuk membuat akun layanan dan file kunci:
Di workstation admin, pastikan Anda berada di direktori
baremetal
.Jika Anda belum melakukannya, login ke Google Cloud CLI:
gcloud auth login
Buat akun layanan:
gcloud iam service-accounts create anthos-baremetal-gcr \ --project=PROJECT_ID gcloud iam service-accounts create anthos-baremetal-connect \ --project=PROJECT_ID gcloud iam service-accounts create anthos-baremetal-register \ --project=PROJECT_ID gcloud iam service-accounts create anthos-baremetal-cloud-ops \ --project=PROJECT_ID
Berikan peran IAM yang diperlukan di akun layanan:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/gkehub.connect" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com" \ --role=roles/gkehub.admin gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/stackdriver.resourceMetadata.writer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/opsconfigmonitoring.resourceMetadata.writer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.dashboardEditor" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.viewer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/serviceusage.serviceUsageViewer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/kubernetesmetadata.publisher"
Download file kunci JSON akun layanan:
gcloud iam service-accounts keys create anthos-baremetal-gcr.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create connect-agent.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create connect-register.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create anthos-baremetal-cloud-ops.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com
Mengonfigurasi akun layanan yang dapat mengakses bucket Cloud Storage
Anda menggunakan akun layanan dan file kunci untuk mengakses Cloud Storage. Anda dapat menggunakan akun layanan ini untuk mengaktifkan snapshot cluster agar otomatis diupload ke bucket Cloud Storage, atau untuk mengimpor image virtual machine (VM) dari bucket Cloud Storage untuk digunakan dengan Runtime VM di GDC.
Untuk membuat akun layanan dan file kunci, selesaikan langkah-langkah berikut:
Pastikan Anda berada di direktori
baremetal
.Jika Anda belum melakukannya, login ke Google Cloud CLI:
gcloud auth login
Jika belum, aktifkan Cloud Storage API,
storage.googleapis.com
di project Google Cloud Anda:gcloud services enable --project=PROJECT_ID \ storage.googleapis.com
Buat akun layanan yang dapat digunakan cluster Anda untuk mengakses bucket Cloud Storage:
gcloud iam service-accounts create SA_NAME \ --project=PROJECT_ID
Ganti
SA_NAME
dengan nama akun layanan baru. Nama akun layanan ini akan muncul di alamat email yang disediakan selama pembuatan, dalam formatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
.Buat peran khusus dengan izin berikut:
storage.buckets.create
storage.buckets.get
storage.buckets.list
storage.objects.create
resourcemanager.projects.get
gcloud iam roles create ROLE_ID \ --permissions=storage.buckets.create,storage.buckets.get,storage.buckets.list,storage.objects.create \ --project=PROJECT_ID
Ganti
ROLE_ID
dengan nama peran kustom baru, sepertisnapshotUpload
. Jalur lengkap peran kustom ini memiliki formatprojects/PROJECT_ID/roles/ROLE_ID
.Tambahkan binding kebijakan ke akun layanan:
gcloud iam service-accounts add-iam-policy-binding SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member=serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role='projects/PROJECT_ID/roles/ROLE_ID'
Download file kunci JSON akun layanan:
gcloud iam service-accounts keys create OUTPUT_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Untuk informasi selengkapnya tentang cara membuat snapshot cluster dan menguploadnya secara otomatis ke bucket Cloud Storage, lihat Membuat snapshot untuk membantu mendiagnosis masalah cluster.
Untuk informasi selengkapnya tentang cara mengimpor image VM dari Cloud Storage, lihat Membuat dan menggunakan kredensial untuk mengimpor image dari Cloud Storage untuk Runtime VM di GDC.