Halaman ini menjelaskan cara membuat cluster admin menggunakan Google Cloud konsol atau Google Cloud CLI (gcloud CLI). Kedua klienGoogle Cloud standar ini menggunakan GKE On-Prem API untuk membuat cluster.
Apa yang dimaksud dengan GKE On-Prem API?
GKE On-Prem API adalah API yang dihosting Google Cloudyang memungkinkan Anda mengelola siklus proses cluster on-premise menggunakan Terraform dan aplikasiGoogle Cloud standar. GKE On-Prem API berjalan di infrastruktur Google Cloud's. Terraform, konsol, dan gcloud CLI adalah klien API, dan menggunakan API untuk membuat cluster di pusat data Anda.
Untuk mengelola siklus proses cluster, GKE On-Prem API harus menyimpan metadata tentang status cluster Anda di Google Cloud, menggunakan Google Cloud region yang Anda tentukan saat membuat cluster. Metadata ini memungkinkan API mengelola siklus proses cluster dan tidak menyertakan data khusus workload.
Saat membuat cluster menggunakan klien GKE On-Prem API, Anda menentukan projectGoogle Cloud . Setelah cluster dibuat, cluster tersebut akan otomatis didaftarkan ke fleet project yang ditentukan. Project ini disebut sebagai project host fleet. Project host armada tidak dapat diubah setelah cluster dibuat.
Jika ingin, Anda dapat membuat cluster admin dengan membuat file konfigurasi cluster admin dan menggunakan bmctl
, seperti yang dijelaskan dalam Membuat cluster admin.
Jika Anda ingin menggunakan konsol atau gcloud CLI untuk mengelola
siklus proses cluster yang dibuat menggunakan bmctl
, lihat
Mengonfigurasi cluster agar dikelola oleh GKE On-Prem API.
Izin IAM
Jika Anda bukan pemilik project Google Cloud , Anda harus meminta pemilik project memberi Anda peran berikut:
Jika ingin mengakses halaman GKE Enterprise dan GKE di konsol, Anda juga harus memiliki roles/container.viewer.
Untuk mengetahui informasi tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Akses command line
Setelah cluster dibuat, jika Anda ingin menggunakan
gateway koneksi untuk menjalankan
perintah kubectl
terhadap cluster di komputer selain workstation admin, instal alat command line berikut di komputer yang akan Anda gunakan.
gcloud CLI versi terbaru.
kubectl
untuk menjalankan perintah terhadap cluster Kubernetes. Jika Anda perlu menginstalkubectl
, ikuti petunjuk ini.
Pilih klien untuk membuat cluster admin
Anda dapat menggunakan konsol atau gcloud CLI untuk membuat cluster admin yang dikelola oleh GKE On-Prem API. Jika ini adalah pertama kalinya Anda menginstal Google Distributed Cloud (khusus software) di bare metal, Anda mungkin merasa lebih mudah menggunakan konsol daripada gcloud CLI.
Setelah lebih memahami informasi yang perlu Anda berikan untuk
membuat cluster, Anda mungkin merasa gcloud CLI lebih praktis
karena Anda dapat menyimpan perintah dengan argumennya ke file teks. Jika Anda menggunakan alat CI/CD, seperti Cloud Build, Anda dapat menggunakan perintah gcloud
untuk membuat cluster dan menentukan flag --impersonate-service-account
untuk mengotomatiskan pembuatan.
Prasyarat
Konsol
Di konsol, buka halaman Create a bare metal cluster.
Pilih Google Cloud project tempat Anda ingin membuat cluster. Project yang dipilih juga digunakan sebagai project host fleet.
Halaman Prasyarat menampilkan persyaratan untuk workstation admin dan mesin node cluster Anda. Perencana alamat IP di bagian Persyaratan jaringan membantu Anda merencanakan alamat IP yang diperlukan untuk penginstalan minimal satu cluster admin dan satu cluster pengguna.
Prasyarat workstation admin
Perluas bagian ini untuk menampilkan persyaratan hardware, sistem operasi, dan konektivitas untuk workstation admin Anda.
Prasyarat komputer node cluster
Perluas bagian ini untuk menampilkan persyaratan hardware, sistem operasi, dan konektivitas untuk mesin node cluster.
Persyaratan jaringan
Bagian ini membantu Anda merencanakan alamat IP yang diperlukan untuk lingkungan minimal. Secara opsional, di bagian Node IP and Virtual IP addresses, Anda dapat memberikan alamat IP node awal dan alamat IP virtual (VIP), dan konsol akan menampilkan tabel alamat IP yang Anda butuhkan. Alamat IP ini tidak diterapkan ke konfigurasi cluster admin. Alamat IP ini dimaksudkan sebagai panduan untuk membantu Anda merencanakan alamat IP yang Anda butuhkan untuk penginstalan. Anda dapat mendownload tabel ke file CSV dan mengimpornya ke spreadsheet atau alat perencanaan alamat IP untuk digunakan sebagai titik awal dalam melacak alamat IP yang diperlukan untuk cluster Anda.
Tinjau resource Google Cloud:
Pastikan semua Google API yang diperlukan diaktifkan di project host fleet. Selain itu, Anda perlu mengaktifkan GKE On-Prem API:
gcloud services enable --project FLEET_HOST_PROJECT_ID \ gkeonprem.googleapis.com
Ganti FLEET_HOST_PROJECT_ID
dengan project ID untuk project host fleet.
Sebelum membuat cluster, Anda menjalankan perintah bmctl register bootstrap
di workstation admin seperti yang dijelaskan dalam Menyiapkan lingkungan bootstrap. Perintah ini
dapat membuat akun layanan yang diperlukan dengan izin IAM
minimum yang diperlukan untuk membuat cluster admin.
Jika ingin, Anda dapat
Mengonfigurasi akun layanan secara manual.
Jika Anda sudah siap memulai, klik Install bootstrap environment di menu navigasi kiri.
gcloud CLI
Prasyarat hardware, jaringan, dan sistem operasi
Membuat cluster admin menggunakan klien GKE On-Prem API memerlukan prasyarat hardware, jaringan, dan sistem operasi yang sama seperti membuat cluster menggunakan bmctl
. Untuk mengetahui detailnya,
lihat Prasyarat penginstalan.
Google API yang diperlukan
Pastikan semua Google API yang diperlukan diaktifkan di project host fleet. Selain itu, Anda perlu mengaktifkan GKE On-Prem API:
gcloud services enable --project FLEET_HOST_PROJECT_ID \ gkeonprem.googleapis.com
Ganti FLEET_HOST_PROJECT_ID
dengan project ID untuk project host fleet.
Akun layanan dan izin yang diperlukan
Sebelum membuat cluster, Anda menjalankan perintah bmctl register bootstrap
di workstation admin seperti yang dijelaskan dalam Menyiapkan lingkungan bootstrap. Perintah ini
dapat membuat akun layanan yang diperlukan dengan izin IAM
minimum yang diperlukan untuk membuat cluster admin.
Jika ingin, Anda dapat
Mengonfigurasi akun layanan secara manual.
Merencanakan alamat IP
Sebelum membuat cluster admin, Anda perlu merencanakan alamat IP untuk cluster Anda. Tinjau Merencanakan alamat IP Anda untuk melihat contoh cara mengalokasikan alamat IP untuk cluster admin dengan ketersediaan tinggi (HA) dan dua cluster pengguna HA. Meskipun Anda akan menggunakan gcloud CLI untuk membuat cluster admin, sebaiknya ikuti langkah-langkah konsol di bagian ini untuk menggunakan perencana alamat IP.
Menyiapkan lingkungan bootstrap
Sebelum membuat cluster admin, Anda harus menjalankan perintah
bmctl register bootstrap
di workstation admin. Perintah ini men-deploy cluster Kubernetes di Docker (kind) di workstation admin. Cluster bootstrap ini menghosting
pengontrol Kubernetes yang diperlukan untuk membuat cluster admin. Saat Anda membuat
cluster admin, pengontrol di cluster bootstrap akan menyediakan node,
menjalankan pemeriksaan pendahuluan, dan mendaftarkan cluster admin ke fleet. Cluster bootstrap
akan otomatis dihapus setelah cluster berhasil dibuat.
Konsol
Masukkan Name untuk cluster admin. Perhatikan bahwa nama cluster bootstrap diperoleh dengan menambahkan bootstrap- ke nama cluster admin.
Pilih versi untuk cluster admin Anda.
Di kolom Google Cloud API Location, pilih Google Cloud region dari daftar. Setelan ini menentukan region tempat API dan layanan berikut berjalan:
- GKE On-Prem API (
gkeonprem.googleapis.com
) - Layanan armada (
gkehub.googleapis.com
) - Layanan Connect (
gkeconnect.googleapis.com
)
Setelan ini juga mengontrol region tempat item berikut disimpan:
- Metadata cluster yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
- Data Cloud Logging dan Cloud Monitoring dari komponen sistem
- Log Audit Admin yang dibuat oleh Cloud Audit Logs
Nama cluster, project, dan lokasi bersama-sama mengidentifikasi cluster secara unik di Google Cloud.
- GKE On-Prem API (
Konsol akan menampilkan perintah yang perlu Anda jalankan di workstation admin Anda. Alat command line
bmctl
harus cocok dengan versi cluster yang Anda buat. Jika sudah mendownload versibmctl
yang berlaku ke workstation admin, Anda tidak perlu mendownloadnya lagi.
gcloud CLI
Pastikan untuk memperbarui komponen:
gcloud components update
Jalankan perintah berikut untuk login dengan Akun Google Anda:
gcloud auth login
Buat daftar versi cluster bare metal yang tersedia yang dapat Anda instal:
Versi
bmctl
yang Anda download untuk membuat lingkungan bootstrap harus cocok dengan versi yang akan Anda instal di cluster admin.gcloud container bare-metal admin-clusters query-version-config \ --location=REGION
Ganti
REGION
dengan Google Cloud region yang akan Anda gunakan saat membuat cluster. Ini adalah region tempat API GKE On-Prem dan layanan Fleet and Connect berjalan. Tentukanus-west1
atau wilayah yang didukung lainnya.
Buat cluster bootstrap
Lakukan langkah-langkah berikut di workstation admin Anda. Perintah ini ditampilkan di konsol.
Tetapkan kredensial pengguna Anda sebagai Kredensial Default Aplikasi (ADC):
gcloud auth application-default login
Ikuti petunjuk untuk memilih Akun Google Anda untuk ADC.
Jika perlu, download alat command line
bmctl
ke direktori kerja saat ini.gcloud storage cp gs://anthos-baremetal-release/bmctl/VERSION/linux-amd64/bmctl . chmod a+x ./bmctl
Ganti
VERSION
dengan versi cluster bare metal yang ingin Anda instal. Jika Anda menyalin perintah dari konsol, versi sudah ada dalam perintah.Buat cluster bootstrap. Anda dapat mengizinkan
bmctl
membuat akun layanan (SA) yang diperlukan, atau Anda dapat membuat akun layanan dan file kunci sendiri, lalu meneruskannya ke perintahbmctl register bootstrap
.
bmctl
membuat SA
Gunakan perintah berikut jika Anda ingin bmctl
membuat akun layanan yang diperlukan dengan izin minimum yang diperlukan untuk membuat cluster admin. Perintah ini mengasumsikan bahwa bmctl
berada di direktori kerja saat ini.
./bmctl register bootstrap \ --ssh-key=YOUR_PRIVATE_KEY \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=FLEET_HOST_PROJECT_ID
Ganti kode berikut:
YOUR_PRIVATE_KEY
: Jalur ke kunci SSH pribadi Anda. Anda membuat kunci SSH saat menyiapkan akses SSH root ke node.
Jika Anda menyalin perintah yang ditampilkan di konsol, kolom berikut sudah diisi untuk Anda.
ADMIN_CLUSTER_NAME
: Nama cluster admin Anda.FLEET_HOST_PROJECT_ID
: Project tempat cluster admin akan didaftarkan secara otomatis setelah cluster dibuat.
Perintah bmctl register bootstrap
membuat akun layanan berikut.
Kunci akun layanan disimpan di direktori
bmctl-workspace/.sa-keys
.
Akun layanan | Tujuan | Peran IAM |
---|---|---|
anthos-baremetal-gcr | Google Distributed Cloud menggunakan akun layanan ini untuk mendownload image container dari Artifact Registry. | Tidak ada |
anthos-baremetal-connect | Agen Connect menggunakan akun layanan ini untuk mempertahankan koneksi antara cluster Anda dan Google Cloud. | roles/gkehub.connect |
anthos-baremetal-register | Connect Agent menggunakan akun layanan ini untuk mendaftarkan cluster Anda ke Google Cloud 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 |
Menentukan file kunci SA
Jika mau, Anda dapat meneruskan file kunci akun layanan bmctl
yang Anda buat. Perintah berikut menggunakan nama file kunci di
Mengonfigurasi akun layanan secara manual
dan mengasumsikan bahwa bmctl
dan file kunci berada di direktori kerja saat ini.
./bmctl register bootstrap \ --ssh-key=YOUR_PRIVATE_KEY \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=FLEET_HOST_PROJECT_ID \ --gcr-service-account-key=anthos-baremetal-gcr.json \ --gke-agent-service-account-key=connect-agent.json \ --gke-register-service-account-key=connect-register.json \ --cloud-operation-service-account-key=anthos-baremetal-cloud-ops.json
Ganti kode berikut:
YOUR_PRIVATE_KEY
: Jalur ke kunci SSH pribadi Anda. Anda membuat kunci SSH saat menyiapkan akses SSH root ke node.ADMIN_CLUSTER_NAME
: Nama cluster admin Anda.FLEET_HOST_PROJECT_ID
: Project tempat cluster admin akan didaftarkan secara otomatis setelah cluster dibuat.
Flag berikut menentukan jalur ke file kunci:
-gcr-service-account-key
: Jalur ke file kunci untuk akun layanan yang menarik image container (anthos-baremetal-gcr
).--gke-agent-service-account-key
: Jalur ke file kunci untuk akun layanan Connect Agent (anthos-baremetal-connect
).--gke-register-service-account-key
: Jalur ke file kunci untuk akun layanan Connect Agent yang mendaftarkan cluster ke fleet (anthos-baremetal-register
).--cloud-operation-service-account-key
: Jalur ke file kunci untuk akun layanan guna mengaudit log dan memantau project (anthos-baremetal-cloud-ops
).
Setelah bmctl
berhasil membuat cluster bootstrap, Anda akan melihat output yang mirip dengan berikut ini:
[2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK [2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster [2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..
Buat cluster admin
Konsol
Di halaman Install bootstrap environment, klik Check Connection.
Jika berhasil, konsol akan menampilkan
Connection established.Koneksi ke cluster bootstrap harus dibuat sebelum Anda melanjutkan. Jika koneksi tidak dibuat, periksa argumen yang Anda tentukan ke perintah
bmctl register bootstrap
:Pastikan nilai untuk
--target-cluster-name
cocok dengan Admin cluster name yang ditampilkan di bagian Bootstrap environment basics.Pastikan nilai untuk
--project-id
cocok dengan ID project yang Anda pilih di konsol.
Jika Anda perlu mengubah nama cluster bootstrap atau project ID, masukkan
Ctrl-C
untuk keluar daribmctl register bootstrap
dan jalankan kembali perintah.Klik Next untuk mulai mengonfigurasi cluster admin. Sebagian besar setelan di konsol sesuai dengan kolom di file konfigurasi cluster.
Di bagian Konfigurasi node, masukkan nilai antara 64 dan 250 di Jumlah Pod Maksimum per node, atau terima nilai default, 110. Setelah cluster dibuat, Anda tidak dapat memperbarui nilai ini.
Jumlah maksimum Pod per node (disebut sebagai kepadatan Pod) juga dibatasi oleh resource IP yang tersedia di cluster Anda. Untuk mengetahui detailnya, lihat Jaringan pod.
Klik Berikutnya.
Di halaman Networking, tentukan cara node dan komponen di cluster berkomunikasi satu sama lain dan dengan bidang kontrol Kubernetes.
Untuk mengetahui informasi mendetail, arahkan kursor ke
di samping setiap kolom.Klik Verifikasi dan Buat.
Konsol menampilkan pesan status saat memverifikasi setelan dan membuat cluster di pusat data Anda.
Jika ada masalah dengan konfigurasi, konsol akan menampilkan pesan error yang cukup jelas bagi Anda untuk memperbaiki masalah konfigurasi dan mencoba lagi membuat cluster.
gcloud CLI
Sebelum membuat cluster admin, konfirmasi bahwa cluster bootstrap telah didaftarkan sebagai anggota fleet:
gcloud container fleet memberships list \ --project=FLEET_HOST_PROJECT_ID
Jika cluster bootstrap tidak tercantum, periksa nama cluster bootstrap dan
project ID yang Anda tentukan ke bmctl register bootstrap
. Jika Anda perlu mengubah nama cluster bootstrap atau project ID, masukkan Ctrl-C
untuk keluar dari bmctl register bootstrap
dan jalankan kembali perintah.
Gunakan perintah berikut untuk membuat cluster admin:
gcloud container bare-metal admin-clusters create
Sebagian besar flag yang Anda tentukan untuk perintah sesuai dengan kolom dalam file konfigurasi cluster pengguna.
Untuk membuat cluster admin dengan load balancer yang dibundel:
gcloud container bare-metal admin-clusters create ADMIN_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION \ --version=VERSION \ --max-pods-per-node=MAX_PODS_PER_NODE \ --control-plane-vip=CONTROL_PLANE_VIP \ --control-plane-load-balancer-port=CONTROL_PLANE_LOAD_BALANCER_PORT \ --control-plane-node-configs 'CONTROL_PLANE_NODE_CONFIG' \ --island-mode-service-address-cidr-blocks=SERVICE_ADDR_CIDR \ --island-mode-pod-address-cidr-blocks=POD_ADDR_CIDR \ --lvp-share-path=/mnt/localpv-share \ --lvp-share-storage-class=local-shared \ --lvp-node-mounts-config-path=/mnt/localpv-disk \ --lvp-node-mounts-config-storage-class=local-disks
Jika Anda ingin menggunakan load balancing manual, tambahkan --enable-manual-lb
ke
perintah.
Ganti kode berikut:
ADMIN_CLUSTER_NAME
: Nama cluster admin Anda. Nama tidak dapat diubah setelah cluster dibuat.FLEET_HOST_PROJECT_ID
: Project tempat cluster admin akan didaftarkan secara otomatis setelah cluster dibuat. Project host armada tidak dapat diubah setelah cluster dibuat.REGION
: Google Cloud region tempat GKE On-Prem API berjalan. Tentukanus-west1
atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat hal berikut disimpan:- Metadata cluster yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
- Data Cloud Logging dan Cloud Monitoring dari komponen sistem
- Log Audit Admin yang dibuat oleh Cloud Audit Logs
Nama cluster, project, dan lokasi bersama-sama mengidentifikasi cluster secara unik di Google Cloud.
VERSION
: Versi cluster bare metal. Versi harus cocok dengan versibmctl
yang Anda gunakan untuk menjalankanbmctl register bootstrap
. Anda dapat memeriksa versibmctl
dengan menjalankanbmctl version
di workstation admin.MAX_PODS_PER_NODE
: Untuk cluster admin, nilai yang diizinkan adalah 32-250 dan 64-250 untuk cluster non-HA. Nilai default jika--max-pods-per-node
tidak disertakan dalam perintah adalah 110. Setelah cluster dibuat, nilai ini tidak dapat diperbarui.Jumlah maksimum Pod per node (disebut sebagai kepadatan Pod) juga dibatasi oleh resource IP yang tersedia di cluster Anda. Untuk mengetahui detailnya, lihat Jaringan pod.
CONTROL_PLANE_VIP
: IP virtual (VIP) di load balancer untuk server Kubernetes API cluster. Sertakan VIP bidang kontrol di subnet yang sama dengan node load balancer. Jangan sertakan VIP bidang kontrol di kumpulan alamat load balancer.CONTROL_PLANE_LOAD_BALANCER_PORT
: Port tempat load balancer melayani bidang kontrol. Meskipun Anda dapat mengonfigurasi nilai lain, port443
adalah port standar yang digunakan untuk koneksi HTTPS.CONTROL_PLANE_NODE_CONFIG
: Alamat IPv4 node bidang kontrol. Node bidang kontrol menjalankan workload sistem. Tentukan flag ini untuk setiap node bidang kontrol. Biasanya, Anda memiliki satu mesin jika menggunakan deployment minimum, atau tiga mesin jika menggunakan deployment ketersediaan tinggi (HA). Tentukan jumlah node ganjil untuk memiliki kuorum mayoritas bagi HA. Anda dapat mengubah alamat ini setiap kali Anda mengupdate atau mengupgrade cluster.Nilai untuk tanda memiliki format berikut:
'node-ip=CP_IP_ADDRESS_1,labels=CP_KEY_1.1=CP_VALUE_1.1;CP_KEY_1.2=CP_VALUE_1.2;...' \
Nilai memiliki segmen yang dimulai dengan kata kunci
node-ip
danlabels
. Pisahkan setiap segmen dengan koma.node-ip
: Alamat IP node control plane. Anda hanya dapat menentukan satunode-ip
per tanda. Jika Anda perlu menentukan lebih dari satu node, sertakan kembali tanda untuk setiap node.labels
: Satu atau beberapa pasangan key=value yang dilampirkan ke node.
Perhatikan aturan sintaksis berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap pasangan key=value di segmen
labels
dengan titik koma.
Contoh:
--control-plane-node-configs 'node-ip=192.0.2.1' \ --control-plane-node-configs 'node-ip=192.0.2.2,labels=key2.1=value2.1' \ --control-plane-node-configs 'node-ip=192.0.2.3,labels=key3.1=value3.1;key3.2=value3.2' \
SERVICE_ADDR_CIDR
: Rentang alamat IPv4, dalam format CIDR, untuk Layanan di cluster Anda. Rentang CIDR harus antara /24 dan /12, dengan /12 memberikan alamat IP terbanyak. Sebaiknya gunakan rentang di ruang alamat IP untuk internet pribadi, yang ditentukan dalam RFC 1918, misalnya,10.96.0.0/20
.POD_ADDR_CIDR
: Rentang alamat IPv4, dalam format CIDR, yang akan digunakan untuk Pod di cluster pengguna. Rentang CIDR harus antara /18 dan /8, dengan /8 menyediakan alamat IP terbanyak. Sebaiknya gunakan rentang di ruang alamat IP untuk internet pribadi, yang ditentukan dalam RFC 1918, misalnya,192.168.0.0/16
.
Anda harus menentukan flag penyimpanan berikut. Contoh perintah mencakup nilai umum. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi penyimpanan lokal.
--lvp-share-path
: Ini adalah jalur mesin host tempat subdirektori dapat dibuat. PersistentVolume (PV) lokal dibuat untuk setiap subdirektori.--lvp-share-storage-class
: Ini adalah StorageClass yang akan digunakan untuk membuat volume persisten. StorageClass dibuat selama pembuatan cluster.--lvp-node-mounts-config-path
: Ini adalah jalur mesin host tempat disk yang di-mount dapat ditemukan. PersistentVolume (PV) lokal dibuat untuk setiap pemasangan.--lvp-node-mounts-config-storage
: Kelas penyimpanan yang digunakan untuk membuat PV selama pembuatan cluster.
Untuk mengetahui daftar lengkap flag dan deskripsinya, lihat referensi gcloud CLI.
Output dari perintah ini akan mirip dengan berikut ini:
Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
Dalam contoh output, string operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179
adalah OPERATION_ID
dari operasi yang berjalan lama. Anda
dapat mengetahui status operasi dengan perintah berikut:
gcloud container bare-metal operations describe OPERATION_ID \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION
Untuk mengetahui informasi selengkapnya, lihat operasi bare metal gcloud container.
Memperbaiki error pra-penerbangan
Sebelum membuat cluster, bmctl
menjalankan serangkaian pemeriksaan pra-penerbangan untuk memverifikasi konfigurasi. Jika ada masalah dengan konfigurasi, perintah
gcloud ... create
akan keluar dengan error yang mirip dengan:
ERROR: (gcloud.container.bare-metal.admin-clusters.create) Invalid resource state for "projects/694677185633/locations/us-west1/bareMetalAdminClusters/abm-cluster-1": cluster preflight checks failed
Misalnya, asumsikan bahwa pemeriksaan awal gagal karena node bidang kontrol tidak dapat dijangkau. Di workstation admin, Anda akan melihat sesuatu yang mirip dengan berikut ini:
[2023-03-27 20:34:38+0000] Waiting for preflight check job to finish... OK [2023-03-27 20:35:58+0000] - Validation Category: machines and network [2023-03-27 20:35:58+0000] - [PASSED] pod-cidr [2023-03-27 20:35:58+0000] - [FAILED] node-network (log: bmctl-workspace/log/register-bootstrap-20230327-201548/node-network) [2023-03-27 20:35:58+0000] - Failed to connect to the host via ssh: ssh: connect to host 10.100.0.5 port 22: Connection timed out [2023-03-27 20:35:58+0000] Flushing logs... OK [2023-03-27 20:35:58+0000] Error polling the preflight check abm-cluster-mar-27 in the cluster-abm-cluster-mar-27: preflight check failed
Di workstation admin, pastikan proses
bmctl register bootstrap
masih berjalan. Jika tidak, jalankan kembali perintah dengan argumen yang sama dan tambahkan tanda--reuse-bootstrap-cluster=true
.Jalankan
gcloud ... update
untuk memperbaiki alamat IP yang tidak valid:gcloud container bare-metal admin-clusters update ADMIN_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION \ --control-plane-node-configs 'node-ip=NEW_NODE_ID_ADDRESS'
Untuk mengetahui informasi selengkapnya, lihat gcloud container bare-metal admin-clusters update.
Detail tentang proses pembuatan cluster ditampilkan di workstation admin Anda. Jika pemeriksaan pra-penerbangan berhasil, Anda akan melihat tampilan seperti berikut:
[2023-03-22 23:12:47+0000] Waiting for cluster kubeconfig to become ready OK [2023-03-22 23:15:47+0000] Writing kubeconfig file [2023-03-22 23:15:47+0000] kubeconfig of cluster being created is present at bmctl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig [2023-03-22 23:15:47+0000] Please restrict access to this file as it contains authentication credentials of your cluster. [2023-03-22 23:15:47+0000] Waiting for cluster to become ready OK [2023-03-22 23:20:17+0000] Please run [2023-03-22 23:20:17+0000] kubectl --kubeconfig bmctl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig get nodes [2023-03-22 23:20:17+0000] to get cluster nodes status. [2023-03-22 23:20:17+0000] Waiting for node pools to become ready OK [2023-03-22 23:20:37+0000] Waiting for metrics to become ready in GCP OK [2023-03-22 23:25:38+0000] Waiting for cluster API provider to install in the created admin cluster OK [2023-03-22 23:25:48+0000] Moving admin cluster resources to the created admin cluster [2023-03-22 23:25:51+0000] Waiting for node update jobs to finish OK [2023-03-22 23:27:41+0000] Flushing logs... OK [2023-03-22 23:27:41+0000] Deleting membership... OK [2023-03-22 23:27:42+0000] Deleting bootstrap cluster.
Menghubungkan ke cluster admin
Perintah bmctl register bootstrap
akan membuat file kubeconfig
untuk cluster admin di workstation admin Anda. Direktori tempat kubeconfig
berada dan nama filenya didasarkan pada nama cluster admin sebagai berikut:
bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
Anda perlu membatasi akses ke kubeconfig
ini karena berisi kredensial autentikasi untuk cluster.
Jika ingin menggunakan identitas Google Anda untuk login ke cluster, Anda dapat menyiapkan gateway koneksi sebagai berikut:
Di workstation admin, tetapkan variabel lingkungan
KUBECONFIG
:export KUBECONFIG=$HOME/bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
Tetapkan konteks saat ini dalam variabel lingkungan:
export CONTEXT="$(kubectl config current-context)"
Jalankan perintah
gcloud
berikut. Perintah ini akan melakukan hal berikut:- Memberikan peran
clusterrole/view
Kubernetes di cluster kepada akun pengguna Anda. - Mengonfigurasi cluster sehingga Anda dapat menjalankan perintah
kubectl
hanya baca di komputer lokal tanpa harus melakukan SSH ke workstation admin.
Ganti
GOOGLE_ACCOUNT_EMAIL
dengan alamat email yang terkait dengan akun Google Cloud Anda. Misalnya:--users=alex@example.com
.gcloud container fleet memberships generate-gateway-rbac \ --membership=ADMIN_CLUSTER_NAME \ --role=clusterrole/view \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=FLEET_HOST_PROJECT_ID \ --kubeconfig=$KUBECONFIG \ --context=$CONTEXT\ --apply
Output perintah ini akan mirip dengan berikut ini, yang dipangkas agar mudah dibaca:
Validating input arguments. Specified Cluster Role is: clusterrole/view Generated RBAC policy is: -------------------------------------------- ... Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.
- Memberikan peran
Dengan adanya kebijakan RBAC ini, Anda dapat login ke cluster dari
konsol menggunakan identitas Google Anda. Selain itu, Anda dapat menjalankan perintah kubectl
hanya baca di komputer selain workstation admin menggunakan kubeconfig
khusus yang merutekan permintaan melalui gateway koneksi.
Jalankan perintah berikut di komputer selain workstation admin untuk mendapatkan entri
kubeconfig
yang dapat mengakses cluster melalui gateway koneksi.gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID
Outputnya mirip dengan hal berikut ini:
Starting to build Gateway kubeconfig... Current project_id: FLEET_HOST_PROJECT_ID A new kubeconfig entry "connectgateway_FLEET_HOST_PROJECT_ID_global_ADMIN_CLUSTER_NAME" has been generated and set as the current context.
Anda kini dapat menjalankan perintah
kubectl
melalui gateway koneksi:kubectl get pods -A
Langkah berikutnya
- Menghapus cluster admin
- Membatalkan pendaftaran cluster yang tidak tersedia
- Menambahkan cluster pengguna
- Mengelola cluster dari Google Cloud konsol