Halaman ini menjelaskan cara membuat cluster pengguna menggunakan Konsol Google Cloud, Google Cloud CLI (gcloud CLI), atau Terraform.
Apa itu GKE On-Prem API?
GKE On-Prem API adalah API yang dihosting Google Cloud dan dapat Anda gunakan untuk mengelola siklus proses cluster lokal menggunakan Terraform dan aplikasi Google Cloud standar. GKE On-Prem API berjalan di infrastruktur Google Cloud. Terraform, konsol, dan gcloud CLI adalah klien API, dan menggunakan API untuk membuat cluster di pusat data Anda.
Untuk mengelola siklus proses cluster Anda, GKE On-Prem API harus menyimpan metadata tentang status cluster Anda di Google Cloud, menggunakan region Google Cloud 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 harus menentukan project Google Cloud. Setelah dibuat, cluster akan otomatis terdaftar ke fleet project yang ditentukan. Project ini disebut sebagai project host armada. Project host fleet tidak dapat diubah setelah cluster dibuat.
Jika ingin, Anda dapat membuat cluster pengguna dengan membuat file konfigurasi cluster pengguna dan menggunakan bmctl
, seperti yang dijelaskan dalam Membuat cluster pengguna.
Jika Anda ingin menggunakan Terraform, konsol, atau gcloud CLI untuk mengelola siklus proses cluster yang dibuat menggunakan bmctl
, lihat Mengonfigurasi cluster pengguna untuk dikelola oleh GKE On-Prem API.
Sebelum memulai
Bagian ini menjelaskan persyaratan untuk membuat cluster pengguna menggunakan klien GKE On-Prem API.
Memberikan izin IAM
Jika bukan pemilik project, Anda harus diberi roles/gkeonprem.admin.
Jika ingin mengakses edisi Google Kubernetes Engine (GKE) Enterprise dan halaman Google Kubernetes Engine di konsol, Anda juga harus memiliki peran berikut:
Setelah cluster dibuat, jika Anda bukan pemilik project dan ingin menggunakan gateway Connect untuk terhubung ke cluster pengguna melalui command line, peran berikut diperlukan:
roles/gkehub.gatewayAdmin: Peran ini memungkinkan Anda mengakses Connect gateway API. Jika Anda hanya memerlukan akses hanya baca ke cluster,
roles/gkehub.gatewayReader
sudah cukup.roles/gkehub.viewer: Peran ini memungkinkan Anda mengambil kredensial cluster.
Untuk mengetahui informasi tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Google API yang diperlukan
Pastikan semua Google API yang diperlukan diaktifkan di project fleet host.
Jika akan menggunakan gcloud CLI untuk membuat cluster, Anda harus mengaktifkan GKE On-Prem API. Jika Anda menggunakan konsol untuk membuat cluster, GKE On-Prem API akan otomatis diaktifkan.
gcloud services enable --project FLEET_HOST_PROJECT_ID \ gkeonprem.googleapis.com
Prasyarat cluster admin
Anda memerlukan cluster admin yang berfungsi sebelum dapat membuat cluster pengguna. Cluster admin harus:
Memiliki akses ke server Kubernetes API di cluster pengguna setelah dibuat.
Memiliki konektivitas jaringan ke semua node di cluster pengguna setelah dibuat.
Harus terdaftar ke fleet. Project ID yang dikonfigurasi di
gkeConnect.projectID
, kolom cluster admin tersebut, yang disebut sebagai project host fleet, harus berupa project yang sama dengan tempat Anda akan membuat cluster pengguna.
Prasyarat mesin node cluster
Tinjau Prasyarat mesin node cluster untuk memastikan bahwa komputer yang akan menjalankan cluster pengguna memenuhi prasyarat.
Akses command line
Setelah cluster dibuat, jika Anda ingin menggunakan gateway Connect untuk menjalankan
kubectl
terhadap cluster pengguna di
komputer selain workstation admin, instal alat command line
berikut di komputer yang ingin Anda gunakan.
- Versi terbaru gcloud CLI.
kubectl
untuk menjalankan perintah pada cluster Kubernetes. Jika Anda perlu menginstalkubectl
, ikuti instructions ini.
Membuat cluster pengguna
Anda dapat menggunakan Terraform, Google Cloud Console, atau Google Cloud CLI (gcloud CLI) untuk membuat cluster yang dikelola oleh GKE On-Prem API. Jika ini pertama kalinya Anda menginstal GKE di Bare Metal, konsol mungkin adalah alat yang paling mudah untuk digunakan.
Setelah memahami informasi yang harus Anda berikan untuk membuat cluster, Terraform atau gcloud CLI dapat lebih praktis bagi Anda, terutama jika Anda akan membuat lebih dari satu cluster. Terraform adalah infrastruktur standar industri sebagai alat kode. Jika organisasi Anda sudah menggunakan Terraform, Anda mungkin ingin menggunakannya untuk membuat cluster dan mengelola siklus proses cluster.
Dengan gcloud CLI, Anda dapat menyimpan perintah beserta argumennya ke dalam file teks dan membuat perubahan sesuai kebutuhan untuk membuat cluster tambahan. Jika menggunakan alat CI/CD, seperti Cloud Build, Anda dapat menggunakan perintah gcloud
untuk membuat cluster dan kumpulan node, serta menentukan flag --impersonate-service-account
untuk mengotomatiskan pembuatan.
Konsol
Sebagian besar setelan di konsol berkaitan dengan kolom dalam file konfigurasi cluster.
Di konsol, buka halaman Create a GKE on Bare Metal cluster.
Pilih project Google Cloud tempat Anda ingin membuat cluster. Project yang dipilih juga digunakan sebagai project host fleet. Project ini harus sama dengan tempat cluster admin terdaftar. Setelah dibuat, cluster pengguna akan otomatis didaftarkan ke fleet project yang dipilih.
Klik Next untuk mulai mengonfigurasi cluster.
Bagian berikut akan memandu Anda dalam mengonfigurasi cluster pengguna.
Dasar-dasar cluster
Masukkan informasi dasar tentang cluster.
- Masukkan Nama untuk cluster pengguna.
Di bagian Cluster admin, pilih cluster admin dari daftar.
Di kolom Google Cloud API Location, pilih region Google Cloud dari daftar. Setelan ini menentukan region tempat GKE On-Prem API dijalankan, dan region tempat menyimpan hal-hal berikut:
- Metadata cluster pengguna 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.
Pilih GKE pada versi Bare Metal untuk cluster pengguna Anda. Cluster pengguna harus berupa versi minor yang sama dengan cluster admin atau satu versi minor yang lebih rendah dari cluster admin.
Sebagai pembuat cluster, Anda diberi hak istimewa admin cluster ke cluster tersebut. Secara opsional, masukkan alamat email pengguna lain yang akan mengelola cluster di kolom Admin user.
Saat cluster dibuat, GKE On-Prem API akan menerapkan kebijakan kontrol akses berbasis peran (RBAC) Kubernetes ke cluster tersebut untuk memberi Anda dan pengguna admin lainnya peran
clusterrole/cluster-admin
Kubernetes, yang menyediakan akses penuh ke setiap resource dalam cluster di semua namespace.Di bagian Node configuration, tentukan hal berikut:
Pod Maksimum per node: Masukkan jumlah maksimum Pod yang dapat dijalankan pada satu node. Nilai yang diizinkan antara
32
–250
, inklusif. Kubernetes menetapkan blok Classless Inter-Domain Routing (CIDR) ke setiap node, sehingga setiap pod dapat memiliki alamat IP yang unik. Ukuran blok CIDR sesuai dengan jumlah maksimum pod per node. Untuk mengetahui informasi selengkapnya tentang cara menetapkan jumlah maksimum pod per node, jaringan Pod.Container runtime: containerd adalah satu-satunya runtime container yang tersedia untuk cluster Anda.
Klik Next untuk membuka bagian Networking.
Networking
Di bagian ini, Anda akan menentukan alamat IP untuk node, Pod, dan Layanan cluster. Jika Anda menggunakan paket load balancing dengan MetalLB, Anda juga harus mengonfigurasinya.
Di bagian node Control bidang, masukkan alamat IPv4 untuk setiap node bidang kontrol. Node bidang kontrol menjalankan beban kerja sistem. Biasanya, sistem ini adalah mesin tunggal jika menggunakan deployment minimum atau tiga mesin jika menggunakan deployment ketersediaan tinggi (HA). Tentukan jumlah ganjil node agar memiliki kuorum mayoritas untuk HA. Kolom ini dapat diubah setiap kali Anda mengupdate atau mengupgrade cluster.
Klik + Tambahkan Alamat IP jika diperlukan untuk memasukkan lebih banyak alamat IP.
Di bagian Load balancer, pilih load balancer dari daftar Mode yang akan disiapkan untuk cluster Anda. Baca Ringkasan load balancer untuk mengetahui informasi selengkapnya.
Dipaketkan dengan MetalLB
Mengonfigurasi load balancing dengan load balancer MetalLB yang dipaketkan. Dengan opsi ini, GKE di Bare Metal men-deploy load balancer Lapisan 4 yang berjalan di kumpulan worker node khusus atau pada node yang sama dengan bidang kontrol.
Di bagian Load balancer node pool, pilih salah satu opsi berikut:
Use control bidang nodes: Pilih opsi ini untuk menjalankan load balancer pada node yang sama dengan bidang kontrol.
Create load balancer node pool: Pilih opsi lanjutan ini jika Anda perlu menjalankan load balancer di kumpulan node pekerja khusus. Semua node dalam kumpulan node load balancer harus berada dalam subnet Lapisan 2 yang sama dengan IP virtual (VIP) load balancer, yang dikonfigurasi di bagian Kumpulan alamat load balancer.
Di kolom Load balancer node pool IP 1, masukkan alamat IPv4 untuk sebuah node dalam kumpulan node load-balancer Anda.
Klik + Add IP address jika diperlukan untuk memasukkan alamat IP tambahan.
Di bagian Load balancer address pool, tambahkan satu atau beberapa kumpulan alamat untuk dipilih oleh pengontrol MetalLB dan tetapkan ke Service jenis
LoadBalancer
. VIP masuk, yang Anda tentukan di bagian IP Virtual, harus berada dalam salah satu kumpulan ini.Masukkan nama untuk kumpulan alamat.
Masukkan rentang alamat IP dalam notasi CIDR (misalnya: 192.0.2.0/26) atau notasi rentang (misalnya: 192.0.2.64-192.0.2.72). Untuk menentukan satu alamat IP dalam sebuah kumpulan, gunakan /32 dalam notasi CIDR (misalnya: 192.0.2.1/32).
Jika ingress VIP tidak berada dalam rentang alamat, pilih + Add IP Address Range dan masukkan rentang alamat IP lain yang menyertakan VIP ingress.
Alamat IP di setiap kumpulan tidak boleh tumpang-tindih, dan harus berada di subnet yang sama dengan node cluster.
Di bagian Penetapan alamat IP, pilih salah satu opsi berikut:
- Automatic: Pilih opsi ini jika Anda ingin pengontrol MetalLB menetapkan alamat IP secara otomatis dari kumpulan alamat ke Service jenis
LoadBalancer
. - Manual: Pilih opsi ini jika Anda ingin menggunakan alamat dari kumpulan untuk menentukan alamat secara manual untuk Layanan jenis
LoadBalancer
.
- Automatic: Pilih opsi ini jika Anda ingin pengontrol MetalLB menetapkan alamat IP secara otomatis dari kumpulan alamat ke Service jenis
Klik Hindari alamat IP yang berisi bug jika Anda ingin pengontrol MetalLB tidak menggunakan alamat dari kumpulan yang berakhiran .0 atau .255. Hal ini untuk menghindari masalah perangkat konsumen yang berisi bug dan secara keliru menurunkan traffic yang dikirim ke alamat IP khusus tersebut.
Jika sudah selesai, klik Selesai.
Jika perlu, klik Tambahkan Kumpulan Alamat.
Load balancer manual
Dengan load balancing manual, Anda mengonfigurasi solusi load balancing Anda sendiri untuk traffic bidang kontrol dan bidang data. Anda harus mengonfigurasi VIP bidang kontrol di load balancer eksternal sebelum membuat cluster. Load balancer bidang kontrol eksternal juga dapat digunakan untuk traffic bidang data, atau Anda dapat menyiapkan load balancer terpisah untuk bidang data. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi load balancing manual.
Di bagian Virtual IP, masukkan perintah berikut:
IP Bidang kontrol: Alamat IP tujuan yang akan digunakan untuk traffic yang dikirim ke server Kubernetes API cluster pengguna. VIP bidang kontrol harus berada di subnet yang sama dengan node load balancer, dan tidak boleh berada di salah satu rentang alamat yang digunakan untuk kumpulan alamat load balancer.
Port: Port tujuan yang digunakan untuk traffic yang dikirim ke server Kubernetes API. Defaultnya adalah 443.
VIP Ingress: Alamat IP yang akan dikonfigurasi di load balancer untuk proxy masuk. Masukkan alamat dari salah satu kumpulan alamat load balancer.
Di bagian Service and Pod CIDRs, tentukan Layanan Kubernetes dan rentang alamat IP Pod dalam notasi CIDR. Titik-titik tersebut tidak boleh tumpang tindih satu sama lain, atau dengan alamat apa pun di luar cluster yang ingin Anda jangkau dari dalam cluster. Sebaiknya gunakan rentang alamat IP pribadi yang ditentukan oleh RFC 1918. Console menyediakan rentang alamat default berikut, tetapi Anda dapat mengubahnya:
CIDR layanan:
10.96.0.0/20
Jika Anda tidak menerima nilai default, masukkan rentang CIDR antara /24 dan /12, dengan /12 memberikan alamat IP paling banyak.Pod CIDR:
192.168.0.0/16
Jika Anda tidak menerima default, masukkan rentang CIDR antara /18 dan /8, dengan /8 memberikan alamat IP paling banyak.
Di bagian atribut Atribut lanjutan, tentukan hal berikut secara opsional:
URL proxy: Alamat HTTP server proxy Anda. Sertakan nomor port meskipun sama dengan port default skema, misalnya:
http://my-proxy.example.local:80
URL: Daftar alamat IP, rentang alamat IP, nama host, dan nama domain yang dipisahkan koma yang tidak boleh melalui server proxy. Saat GKE di Bare Metal mengirim permintaan ke salah satu alamat, host, atau domain ini, permintaan tersebut akan dikirim secara langsung.
Klik Next.
Penyimpanan
GKE di Bare Metal menyediakan antarmuka block dan file storage. Keduanya memiliki opsi default, tetapi Anda dapat menyesuaikan konfigurasinya. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi penyimpanan lokal.
Secara opsional, Anda dapat mengonfigurasi hal berikut:
Penginstalan node penyedia volume lokal: Menentukan konfigurasi untuk
PersistentVolumes
(PV) lokal yang didukung oleh disk yang terpasang. Anda perlu memformat dan memasang disk ini, yang dapat dilakukan sebelum atau setelah pembuatan cluster.Berbagi penyedia volume lokal: Menentukan konfigurasi untuk
PersistentVolumes
lokal yang didukung oleh subdirektori dalam sistem file bersama. Subdirektori ini dibuat secara otomatis selama pembuatan cluster.
Klik Next.
Fitur
Untuk membantu Anda memantau, memecahkan masalah, dan mengoperasikan cluster, fitur berikut akan diaktifkan secara otomatis dan tidak dapat dinonaktifkan:
- Cloud Logging layanan sistem
- Cloud Monitoring untuk layanan sistem
- Log audit Aktivitas Admin
Membuat node pool
Cluster Anda harus memiliki minimal satu kumpulan node untuk node pekerja. Kumpulan node adalah template untuk grup node pekerja yang dibuat di cluster ini.
Di konsol, Anda dapat mengonfigurasi setidaknya satu kumpulan node (atau menerima nilai default), lalu membuat cluster. Anda dapat menambahkan kumpulan node tambahan setelah cluster dibuat. Dengan gcloud CLI, Anda dapat membuat cluster terlebih dahulu, lalu menambahkan satu atau beberapa node pool ke cluster yang baru dibuat.
Klik kumpulan default di menu navigasi sebelah kiri.
Di bagian Node pool default, masukkan Node pool name atau terima "default-pool" sebagai namanya.
Di bagian Node pekerja, masukkan alamat IP mesin tempat cluster akan dijalankan.
Di bagian Node pool metadata (opsional), jika Anda ingin menambahkan label dan taint Kubernetes, lakukan hal berikut:
- Klik + Add Kubernetes Labels. Masukkan Key dan Value untuk label. Ulangi jika perlu.
- Klik + Add Taint. Masukkan Key, Value, dan Effect untuk taint. Ulangi jika perlu.
Klik Verifikasi dan Selesaikan untuk membuat cluster pengguna. Perlu waktu 15 menit atau lebih untuk membuat cluster pengguna. 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 seharusnya cukup jelas bagi Anda untuk memperbaiki masalah konfigurasi, lalu coba lagi untuk membuat cluster.
gcloud CLI
Anda dapat menggunakan perintah berikut untuk membuat cluster pengguna:
gcloud container bare-metal clusters create
Setelah membuat cluster, Anda harus membuat setidaknya satu kumpulan node menggunakan perintah berikut:
gcloud container bare-metal node-pools create
Sebagian besar tanda untuk membuat cluster dan kumpulan node sesuai dengan kolom dalam file konfigurasi cluster pengguna. Untuk membantu memulai, Anda dapat menguji perintah lengkap di bagian Contoh. Untuk mengetahui informasi tentang flag, baca bagian yang mengikuti contoh, atau baca referensi gcloud CLI.
Sebelum memulai
GKE pada versi Bare Metal yang Anda pilih saat membuat cluster pengguna harus berupa versi yang didukung cluster admin Anda. Selain itu, versi minor atau patch terbaru tidak tersedia di GKE On-Prem API hingga 7 hingga 10 hari setelah rilis. Anda dapat menjalankan perintah gcloud
untuk mendapatkan daftar versi yang didukung yang dapat diinstal di cluster pengguna.
Pastikan untuk mengupdate komponen:
gcloud components update
Dapatkan daftar versi yang tersedia untuk diinstal di cluster pengguna:
gcloud container bare-metal clusters query-version-config \ --admin-cluster-membership=ADMIN_CLUSTER_NAME \ --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership-location=global \ --location=REGION
Ganti kode berikut:
ADMIN_CLUSTER_NAME
: Nama cluster admin.FLEET_HOST_PROJECT_ID
: ID project tempat cluster admin didaftarkan.REGION
: Region Google Cloud yang Anda tentukan saat mendaftarkan cluster di GKE On-Prem API.
Sebaiknya gunakan versi tertinggi yang didukung untuk mendapatkan perbaikan dan peningkatan terbaru.
Contoh
Bagian ini menunjukkan contoh perintah yang membuat cluster menggunakan load balancer MetalLB dan contoh menggunakan load balancer manual. Informasi yang Anda tentukan bervariasi, bergantung pada jenis load balancer yang akan digunakan. Baca Ringkasan load balancer untuk mengetahui informasi selengkapnya.
Contoh di atas membuat cluster tanpa kumpulan node. Setelah cluster berjalan, Anda harus menambahkan kumpulan node sebelum men-deploy workload.
MetalLB
Pastikan men-scroll ke atas jika perlu guna mengisi
placeholder ADMIN_CLUSTER_NAME
untuk
tanda --admin-cluster-membership
.
gcloud container bare-metal clusters create USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership=projects/FLEET_HOST_PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \ --location=REGION \ --version=VERSION \ --admin-users=YOUR_EMAIL_ADDRESS \ --admin-users=ANOTHER_EMAIL_ADDRESS \ --metal-lb-address-pools='pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \ --control-plane-node-configs='node-ip=CP_IP_ADDRESS_1,labels=CP_KEY_1.1=CP_VALUE_1.1;CP_KEY_1.2=CP_VALUE_1.2;...' \ --control-plane-vip=CONTROL_PLANE_VIP \ --control-plane-load-balancer-port=CONTROL_PLANE_LB_PORT \ --ingress-vip=INGRESS_VIP \ --island-mode-service-address-cidr-blocks=SERVICE_CIDR_BLOCK \ --island-mode-pod-address-cidr-blocks=POD_CIDR_BLOCK \ --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
Ganti kode berikut:
-
USER_CLUSTER_NAME
: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Namanya harus:- berisi maksimal 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-
) - diawali dengan karakter alfabet
- diakhiri dengan karakter alfanumerik
-
FLEET_HOST_PROJECT_ID
: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin didaftarkan. Setelah dibuat, cluster pengguna akan otomatis didaftarkan ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat. -
ADMIN_CLUSTER_NAME
: Nama cluster admin yang mengelola cluster pengguna. Dalam flag--admin-cluster-membership
, Anda dapat menggunakan nama cluster yang ditentukan secara lengkap, yang memiliki format berikut:projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAME
Atau, Anda dapat menetapkan
--admin-cluster-membership
ke nama cluster admin, seperti pada contoh perintah. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan--admin-cluster-membership-project
dan lokasinya dengan--admin-cluster-membership-location
. Lokasi cluster admin adalahglobal
atau region Google Cloud. Jika Anda perlu menemukan region, jalankangcloud container fleet memberships list
. -
REGION
: Region Google Cloud tempat GKE On-Prem API (gkeonprem.googleapis.com
), layanan Fleet (gkehub.googleapis.com
), dan layanan Connect (gkeconnect.googleapis.com
) dijalankan. Tentukanus-west1
atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat hal berikut disimpan:- Metadata cluster pengguna 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
: GKE pada versi Bare Metal untuk cluster pengguna Anda. -
YOUR_EMAIL_ADDRESS
danANOTHER_EMAIL_ADDRESS
: Jika tanda--admin-users
tidak disertakan, sebagai pembuat cluster, Anda akan diberi hak istimewa admin cluster secara default. Namun, jika Anda menyertakan--admin-users
untuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti setelan default dan harus menyertakan alamat email Anda serta alamat email administrator lainnya. Misalnya, untuk menambahkan dua administrator:--admin-users=sara@example.com \ --admin-users=amal@example.com
Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan role-based access control (RBAC) Kubernetes ke cluster tersebut untuk memberi Anda dan pengguna admin lainnya peran
clusterrole/cluster-admin
Kubernetes, yang memberikan akses penuh ke setiap resource dalam cluster di semua namespace.
Kumpulan alamat MetalLB
--metal-lb-address-pools
: Menentukan konfigurasi untuk kumpulan alamat yang akan digunakan oleh load balancer MetalLB. Nilai untuk flag memiliki format berikut:
'pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \
Nilai ini memiliki segmen yang dimulai dengan kata kunci
pool
, avoid-buggy-ip
, manual-assign
, dan
addresses
. Pisahkan setiap segmen dengan koma.
pool
: Nama kolam renang pilihan Anda.avoid-buggy-ips
: Jika Anda menetapkannya keTrue
, pengontrol MetalLB tidak akan menetapkan alamat IP yang diakhiri dengan .0 atau .255 ke Layanan. Tindakan ini akan menghindari masalah perangkat konsumen yang berisi bug secara keliru menurunkan traffic yang dikirim ke alamat IP khusus tersebut. Jika tidak ditentukan, setelan defaultnya adalahFalse
.manual-assign
: Jika Anda tidak ingin pengontrol MetalLB secara otomatis menetapkan alamat IP dari kumpulan ini ke Layanan, tetapkan ini keTrue
. Kemudian, developer dapat membuat Layanan jenisLoadBalancer
dan secara manual menentukan salah satu alamat dari kumpulan. Jika tidak ditentukan,manual-assign
akan disetel keFalse
.Dalam daftar
addresses
: Setiap alamat harus berupa rentang dalam format CIDR atau rentang dengan tanda hubung. Untuk menentukan satu alamat IP dalam kumpulan (misalnya untuk VIP masuk), gunakan /32 dalam notasi CIDR (misalnya, 192.0.2.1/32).
Perhatikan aturan sintaksis berikut:
- Letakkan seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap rentang alamat IP dengan titik koma.
Anda dapat menentukan lebih dari satu instance flag, seperti yang ditunjukkan pada contoh berikut:
--metal-lb-address-pools='pool=pool1,avoid-buggy-ips=False,manual-assign=True,addresses=192.0.2.0/26;192.0.2.64-192.0.2.72' --metal-lb-address-pools='pool=pool2,avoid-buggy-ips=True,manual-assign=True,addresses=10.251.133.0/24;10.251.134.80/32'
Node MetalLB
Opsional:
--metal-lb-load-balancer-node-configs
: Secara default, load balancer berjalan pada node yang sama dengan bidang kontrol. Jika perlu menjalankan load balancer pada kumpulan node pekerja khusus, tentukan flag ini untuk setiap node. Semua node dalam kumpulan node load balancer harus berada dalam subnet Lapisan 2 yang sama dengan IP virtual (VIP) load balancer.Nilai untuk flag memiliki format berikut:
'node-ip=LB_IP_ADDRESS_1,labels=LB_KEY_1.1=LB_VALUE_1.1;LB_KEY_1.2=LB_VALUE_1.2;...' \
Nilai memiliki segmen yang dimulai dengan kata kunci
node-ip
danlabels
. Pisahkan setiap segmen dengan koma.node-ip
: Alamat IP node dalam kumpulan node load balancer. Anda hanya dapat menentukan satunode-ip
per flag. Jika Anda perlu menentukan lebih dari satu node, sertakan lagi flag tersebut untuk setiap node.labels
: Satu atau beberapa key-value pair yang dilampirkan ke node.
Perhatikan aturan sintaksis berikut:
- Letakkan seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap key-value pair di segmen
labels
dengan titik koma.
Jika menentukan
--metal-lb-load-balancer-node-configs
, Anda dapat menyertakan flag berikut secara opsional:--metal-lb-load-balancer-node-labels
: Gunakan flag ini untuk menambahkan label ke semua node dalam kumpulan node load balancer. Pisahkan daftar key=value pair dengan koma.--metal-lb-load-balancer-node-labels=KEY_1=VALUE_1,KEY_2=VALUE_2
--metal-lb-load-balancer-node-taints
: Gunakan flag ini untuk menambahkan taint ke semua node dalam kumpulan node load balancer. Setiap taint adalah key=value pair yang terkait dengan efek, yang harus berupa salah satu dari hal berikut:PreferNoSchedule
,NoSchedule
, atauNoExecute
.--metal-lb-load-balancer-node-taints=KEY_1=VALUE_1:EFFECT_1,KEY_2=VALUE_2:EFFECT_2
Contoh berikut menambahkan tiga node ke kumpulan node load balancer. Semua node diberi label dengan
lb-pool-key=lb-pool-value
dan memiliki taintdedicated=experimental:PreferNoSchedule
,--metal-lb-load-balancer-node-configs='node-ip=192.0.2.1' \ --metal-lb-load-balancer-node-configs='node-ip=192.0.2.2,labels=key2.1=value2.1' \ --metal-lb-load-balancer-node-configs='node-ip=192.0.2.3,labels=key3.1=value3.1;key3.2=value3.2' \ --metal-lb-load-balancer-node-labels=lb-pool-key=lb-pool-value \ --metal-lb-load-balancer-node-taints=dedicated=experimental:PreferNoSchedule \
Node bidang kontrol
-
--control-plane-node-configs
: 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 agar memiliki kuorum mayoritas untuk HA. Anda dapat mengubah alamat ini setiap kali memperbarui atau mengupgrade cluster.Nilai untuk flag 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 bidang kontrol. Anda hanya dapat menentukan satunode-ip
per flag. Jika Anda perlu menentukan lebih dari satu node, sertakan lagi flag tersebut untuk setiap node. -
labels
: Satu atau beberapa key-value pair yang dilampirkan ke node.Perhatikan aturan sintaksis berikut:
- Letakkan seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap key-value pair di segmen
labels
dengan titik koma.
Secara opsional, sertakan flag berikut:
-
--control-plane-node-labels
: Gunakan flag ini untuk menambahkan label ke semua node bidang kontrol. Pisahkan daftar key-value pair dengan koma.--control-plane-node-labels=KEY_1=VALUE_1,KEY_2=VALUE_2
-
--control-plane-node-taints
: Gunakan flag ini untuk menambahkan taint ke semua node bidang kontrol. Setiap taint adalah key-value pair yang terkait dengan efek, yang harus berupa salah satu dari yang berikut ini:PreferNoSchedule
,NoSchedule
, atauNoExecute
.Contoh berikut menambahkan tiga node ke node bidang kontrol. Semua node diberi label
cp-node-pool-key=cp-node-pool-value
dan memiliki taintdedicated=experimental:PreferNoSchedule
.--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-planer-node-configs='node-ip=192.0.2.3,labels=key3.1=value3.1;key3.2=value3.2' \ --control-plane-node-labels=cp-node-pool-key=cp-node-pool-value \ --control-plane-node-taints=dedicated=experimental:PreferNoSchedule \
IP virtual
-
CONTROL_PLANE_VIP
: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk server Kubernetes API cluster pengguna.Contoh:
--control-plane-vip=203.0.113.3
-
CONTROL_PLANE_LB_PORT
: Port tempat load balancer menyalurkan server Kubernetes API.Contoh:
-control-plane-load-balancer-port=443
-
INGRESS_VIP
: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy masuk.Contoh:
--ingress-vip=10.251.134.80
Alamat IP untuk VIP ingress harus berada dalam salah satu kumpulan alamat MetalLB.
CIDR Pod dan Service
-
SERVICE_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Rentang CIDR harus antara /24 dan /12, dengan /12 memberikan alamat IP terbanyak.Contoh:
--island-mode-service-address-cidr-blocks=10.96.0.0/20
-
POD_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Rentang CIDR harus antara /18 dan /8, dengan /8 memberikan alamat IP terbanyak.Contoh:
--island-mode-pod-address-cidr-blocks=192.168.0.0/16
Penyimpanan
-
--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 terpasang 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 informasi selengkapnya tentang penyimpanan, lihat Mengonfigurasi penyimpanan lokal.
Manual
Dengan load balancing manual, Anda mengonfigurasi solusi load balancing Anda sendiri untuk traffic bidang kontrol dan bidang data. Anda harus mengonfigurasi VIP bidang kontrol di load balancer eksternal sebelum membuat cluster. Load balancer bidang kontrol eksternal juga dapat digunakan untuk traffic bidang data, atau Anda dapat menyiapkan load balancer terpisah untuk bidang data. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi load balancing manual.
Pastikan men-scroll ke atas jika perlu guna mengisi
placeholder ADMIN_CLUSTER_NAME
untuk
tanda --admin-cluster-membership
.
gcloud container bare-metal clusters create USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership=projects/FLEET_HOST_PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \ --location=REGION \ --version=VERSION \ --admin-users=YOUR_EMAIL_ADDRESS \ --admin-users=ANOTHER_EMAIL_ADDRESS \ --enable-manual-lb \ --control-plane-node-configs='node-ip=CP_IP_ADDRESS_1,labels=CP_KEY_1.1=CP_VALUE_1.1;CP_KEY_1.2=CP_VALUE_1.2;...' \ --control-plane-vip=CONTROL_PLANE_VIP \ --control-plane-load-balancer-port=CONTROL_PLANE_LB_PORT \ --ingress-vip=INGRESS_VIP \ --island-mode-service-address-cidr-blocks=SERVICE_CIDR_BLOCK \ --island-mode-pod-address-cidr-blocks=POD_CIDR_BLOCK \ --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
Ganti kode berikut:
-
USER_CLUSTER_NAME
: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Namanya harus:- berisi maksimal 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-
) - diawali dengan karakter alfabet
- diakhiri dengan karakter alfanumerik
-
FLEET_HOST_PROJECT_ID
: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin didaftarkan. Setelah dibuat, cluster pengguna akan otomatis didaftarkan ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat. -
ADMIN_CLUSTER_NAME
: Nama cluster admin yang mengelola cluster pengguna. Dalam flag--admin-cluster-membership
, Anda dapat menggunakan nama cluster yang ditentukan secara lengkap, yang memiliki format berikut:projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAME
Atau, Anda dapat menetapkan
--admin-cluster-membership
ke nama cluster admin, seperti pada contoh perintah. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan--admin-cluster-membership-project
dan lokasinya dengan--admin-cluster-membership-location
. Lokasi cluster admin adalahglobal
atau region Google Cloud. Jika Anda perlu menemukan region, jalankangcloud container fleet memberships list
. -
REGION
: Region Google Cloud tempat GKE On-Prem API (gkeonprem.googleapis.com
), layanan Fleet (gkehub.googleapis.com
), dan layanan Connect (gkeconnect.googleapis.com
) dijalankan. Tentukanus-west1
atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat hal berikut disimpan:- Metadata cluster pengguna 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
: GKE pada versi Bare Metal untuk cluster pengguna Anda. -
YOUR_EMAIL_ADDRESS
danANOTHER_EMAIL_ADDRESS
: Jika tanda--admin-users
tidak disertakan, sebagai pembuat cluster, Anda akan diberi hak istimewa admin cluster secara default. Namun, jika Anda menyertakan--admin-users
untuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti setelan default dan harus menyertakan alamat email Anda serta alamat email administrator lainnya. Misalnya, untuk menambahkan dua administrator:--admin-users=sara@example.com \ --admin-users=amal@example.com
Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan role-based access control (RBAC) Kubernetes ke cluster tersebut untuk memberi Anda dan pengguna admin lainnya peran
clusterrole/cluster-admin
Kubernetes, yang memberikan akses penuh ke setiap resource dalam cluster di semua namespace.
Node bidang kontrol
-
--control-plane-node-configs
: 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 agar memiliki kuorum mayoritas untuk HA. Anda dapat mengubah alamat ini setiap kali memperbarui atau mengupgrade cluster.Nilai untuk flag 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 bidang kontrol. Anda hanya dapat menentukan satunode-ip
per flag. Jika Anda perlu menentukan lebih dari satu node, sertakan lagi flag tersebut untuk setiap node. -
labels
: Satu atau beberapa key-value pair yang dilampirkan ke node.Perhatikan aturan sintaksis berikut:
- Letakkan seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap key-value pair di segmen
labels
dengan titik koma.
Secara opsional, sertakan flag berikut:
-
--control-plane-node-labels
: Gunakan flag ini untuk menambahkan label ke semua node bidang kontrol. Pisahkan daftar key-value pair dengan koma.--control-plane-node-labels=KEY_1=VALUE_1,KEY_2=VALUE_2
-
--control-plane-node-taints
: Gunakan flag ini untuk menambahkan taint ke semua node bidang kontrol. Setiap taint adalah key-value pair yang terkait dengan efek, yang harus berupa salah satu dari yang berikut ini:PreferNoSchedule
,NoSchedule
, atauNoExecute
.Contoh berikut menambahkan tiga node ke node bidang kontrol. Semua node diberi label
cp-node-pool-key=cp-node-pool-value
dan memiliki taintdedicated=experimental:PreferNoSchedule
.--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-planer-node-configs='node-ip=192.0.2.3,labels=key3.1=value3.1;key3.2=value3.2' \ --control-plane-node-labels=cp-node-pool-key=cp-node-pool-value \ --control-plane-node-taints=dedicated=experimental:PreferNoSchedule \
IP virtual
-
CONTROL_PLANE_VIP
: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk server Kubernetes API cluster pengguna.Contoh:
--control-plane-vip=203.0.113.3
-
CONTROL_PLANE_LB_PORT
: Port tempat load balancer menyalurkan server Kubernetes API.Contoh:
-control-plane-load-balancer-port=443
-
INGRESS_VIP
: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy masuk.Contoh:
--ingress-vip=10.251.134.80
Alamat IP untuk VIP ingress harus berada dalam salah satu kumpulan alamat MetalLB.
CIDR Pod dan Service
-
SERVICE_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Rentang CIDR harus antara /24 dan /12, dengan /12 memberikan alamat IP terbanyak.Contoh:
--island-mode-service-address-cidr-blocks=10.96.0.0/20
-
POD_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Rentang CIDR harus antara /18 dan /8, dengan /8 memberikan alamat IP terbanyak.Contoh:
--island-mode-pod-address-cidr-blocks=192.168.0.0/16
Penyimpanan
-
--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 terpasang 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 informasi selengkapnya tentang penyimpanan, lihat Mengonfigurasi penyimpanan lokal.
Sebelum menjalankan perintah gcloud
untuk membuat cluster, sebaiknya Anda
menyertakan --validate-only
untuk memvalidasi konfigurasi yang ditentukan dalam
flag ke perintah gcloud
. Jika Anda sudah siap untuk membuat cluster,
hapus flag ini dan jalankan perintahnya.
Output dari perintah ini 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
Perlu waktu 15 menit atau lebih untuk membuat cluster pengguna. Anda dapat melihat cluster di Konsol Google Cloud di halaman Cluster GKE.
Untuk mengetahui daftar lengkap flag dan deskripsinya, baca referensi gcloud CLI.
Membuat node pool
Setelah cluster dibuat, Anda perlu membuat setidaknya satu kumpulan node sebelum men-deploy workload. Kumpulan node adalah template untuk grup node pekerja yang dibuat di cluster ini. Dengan gcloud CLI, Anda dapat membuat cluster terlebih dahulu, lalu menambahkan satu atau beberapa node pool ke cluster yang baru dibuat.
gcloud container bare-metal node-pools create NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION \ --node-configs='node-ip=NP_IP_ADDRESS_1,labels=NP_KEY_1.1=NP_VALUE_1.1;NP_KEY_1.2=NP_VALUE_1.2;...'
Ganti kode berikut:
NODE_POOL_NAME
: Nama pilihan Anda untuk kumpulan node. Namanya harus:- berisi maksimal 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-
) - diawali dengan karakter alfabet
- diakhiri dengan karakter alfanumerik
USER_CLUSTER_NAME
: Nama cluster pengguna yang baru dibuat.FLEET_HOST_PROJECT_ID
: ID project tempat cluster didaftarkan.REGION
: Region Google Cloud yang Anda tentukan saat membuat cluster.--node-configs
: Alamat IPv4 mesin node pekerja. Tentukan flag ini untuk setiap node. Nilai untuk flag memiliki format berikut:'node-ip=NP_IP_ADDRESS_1,labels=NP_KEY_1.1=NP_VALUE_1.1;NP_KEY_1.2=NP_VALUE_1.2;...' \
Nilai memiliki segmen yang dimulai dengan kata kunci
node-ip
danlabels
. Pisahkan setiap segmen dengan koma.node-ip
: Alamat IP node pekerja. Anda hanya dapat menentukan satunode-ip
per flag. Tambahkan flag ini lagi untuk setiap {i> node<i} di kumpulan node.labels
: Satu atau beberapa key-value pair yang dilampirkan ke node.
Perhatikan aturan sintaksis berikut:
- Letakkan seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap key-value pair di segmen
labels
dengan titik koma.
Secara opsional, Anda dapat menentukan hal berikut:
--node-labels=KEY=VALUE,...
: Daftar label Kubernetes (key=value pair) yang dipisahkan koma yang diterapkan ke setiap node dalam kumpulan.--node-taints=KEY=VALUE:EFFECT,...
Daftar taint Kubernetes yang dipisahkan koma yang diterapkan ke setiap node di kumpulan tersebut. Taint adalah pasangan nilai kunci yang terkait dengan efek. Taint digunakan dengan toleransi untuk penjadwalan Pod. Tentukan salah satu dari nilai berikut untukEFFECT
:NoSchedule
,PreferNoSchedule
,NoExecute
.
Contoh berikut membuat kumpulan node yang disebut default-pool
pada
user-cluster-
, dan menambahkan dua node ke kumpulan node tersebut. Semua
kedua node diberi label node-pool-key=node-pool-value
dan
memiliki dedicated=experimental:PreferNoSchedule
taint,
gcloud container bare-metal node-pools create default-pool \ --cluster=user-cluster-1 \ --project=example-project-12345 \ --location=us-west1 \ --node-configs='node-ip=10.200.0.10' \ --node-configs='node-ip=10.200.0.11,labels=key2.1=value2.1' \ --node-labels=node-pool-key=node-pool-value \ --node-taints=dedicated=experimental:PreferNoSchedule
Untuk mengetahui informasi selengkapnya, baca referensi gcloud CLI.
Terraform
Anda dapat menggunakan contoh konfigurasi dasar berikut untuk membuat cluster pengguna dengan load balancer MetalLB yang dipaketkan. Untuk informasi selengkapnya, lihat dokumentasi referensi google_gkeonprem_bare_metal_cluster
.
Sebelum memulai
GKE pada versi Bare Metal yang Anda pilih saat membuat cluster pengguna harus berupa versi yang didukung cluster admin Anda. Selain itu, versi minor atau patch terbaru tidak tersedia di GKE On-Prem API hingga 7 hingga 10 hari setelah rilis. Anda dapat menjalankan perintah gcloud
untuk mendapatkan daftar versi yang didukung yang dapat diinstal di cluster pengguna.
Pastikan untuk mengupdate komponen:
gcloud components update
Dapatkan daftar versi yang tersedia untuk diinstal di cluster pengguna:
gcloud container bare-metal clusters query-version-config \ --admin-cluster-membership=ADMIN_CLUSTER_NAME \ --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership-location=global \ --location=REGION
Ganti kode berikut:
ADMIN_CLUSTER_NAME
: Nama cluster admin.FLEET_HOST_PROJECT_ID
: ID project tempat cluster admin didaftarkan.REGION
: Region Google Cloud yang Anda tentukan saat mendaftarkan cluster di GKE On-Prem API.
Sebaiknya gunakan versi tertinggi yang didukung untuk mendapatkan perbaikan dan peningkatan terbaru.
Contoh
Clone repositori
anthos-samples
dan ubah ke direktori tempat sampel Terraform berada:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallb
Contoh ini menyediakan contoh file variabel untuk diteruskan ke
main.tf
.Buat salinan file
terraform.tfvars.sample
:cp terraform.tfvars.sample terraform.tfvars
Ubah nilai parameter di
terraform.tfvars
dan simpan file-nya.Daftar berikut mendeskripsikan variabel:
project_id
: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin terdaftar. Setelah dibuat, cluster pengguna akan otomatis didaftarkan ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat.region
: Region Google Cloud tempat GKE On-Prem API dijalankan. Tentukanus-west1
atau wilayah lain yang didukung.admin_cluster_name
: Nama cluster admin yang mengelola cluster pengguna.bare_metal_version
: GKE pada versi Bare Metal untuk cluster pengguna Anda. Tentukan versi yang sama dengan cluster admin, atau versi yang tidak lebih dari satu versi minor yang lebih rendah dari cluster admin.cluster_name
: Nama cluster pengguna Anda. Nama tidak dapat diubah setelah cluster dibuat. Namanya harus:- berisi maksimal 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-
) - diawali dengan karakter alfabet
- diakhiri dengan karakter alfanumerik
control_plane_ips
: Daftar satu atau beberapa alamat IPv4 untuk node bidang kontrol. Node bidang kontrol menjalankan beban kerja sistem. Biasanya, Anda memiliki satu komputer jika menggunakan deployment minimum, atau tiga mesin jika menggunakan deployment ketersediaan tinggi (HA). Tentukan jumlah ganjil node agar memiliki kuorum mayoritas untuk HA. Anda dapat mengubah alamat ini setiap kali mengupdate atau mengupgrade cluster.worker_node_ips
: Daftar satu atau beberapa alamat IPv4 untuk mesin node pekerja.control_plane_vip
: Alamat IP virtual (VIP) yang telah Anda pilih untuk dikonfigurasi di load balancer untuk server Kubernetes API cluster pengguna.ingress_vip
: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy ingress.lb_address_pools
: Daftar peta yang menentukan kumpulan alamat yang akan digunakan oleh load balancer MetalLB. VIP masuk harus berada di salah satu kumpulan ini.admin_user_emails
: Daftar alamat email pengguna yang akan diberi hak istimewa administratif di cluster. Pastikan untuk menambahkan alamat email jika Anda ingin mengelola cluster.
Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan kontrol akses berbasis peran (RBAC) Kubernetes ke cluster untuk memberikan peran
clusterrole/cluster-admin
Kubernetes kepada pengguna admin, yang menyediakan akses penuh ke setiap resource dalam cluster di semua namespace. Hal ini juga memungkinkan pengguna login ke konsol menggunakan identitas Google mereka.Simpan perubahan di
terraform.tfvars
.Lakukan inisialisasi dan buat paket Terraform:
terraform init
Terraform menginstal semua library yang diperlukan, seperti penyedia Google Cloud.
Tinjau konfigurasi dan buat perubahan jika diperlukan:
terraform plan
Terapkan paket Terraform untuk membuat cluster pengguna:
terraform apply
Perlu waktu 15 menit atau lebih untuk membuat cluster pengguna. Anda dapat melihat cluster di Konsol Google Cloud di halaman Cluster GKE.
Menghubungkan ke cluster pengguna
Saat Anda membuat cluster pengguna di konsol, cluster tersebut dikonfigurasikan dengan kebijakan role-based access control (RBAC) Kubernetes, sehingga Anda dapat login ke cluster menggunakan Google Cloud Identity. Saat membuat cluster pengguna dengan gcloud CLI, Anda secara default diberi kebijakan RBAC ini jika Anda tidak menyertakan flag --admin-users
. Jika Anda menyertakan
--admin-users
untuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti
setelan default dan harus menyertakan alamat email Anda serta
alamat email administrator lainnya. Untuk mengetahui informasi selengkapnya tentang
kebijakan IAM dan RBAC yang diperlukan, lihat
Menyiapkan autentikasi identitas Google.
Semua cluster memiliki endpoint kanonis. Endpoint mengekspos server Kubernetes API
yang digunakan kubectl
dan layanan lainnya untuk berkomunikasi dengan bidang kontrol
cluster melalui TCP port 443. Endpoint ini tidak dapat diakses di internet
publik. Jika Anda memiliki akses ke endpoint pribadi cluster melalui VPC, Anda dapat terhubung langsung ke endpoint pribadi dan membuat file kubeconfig
secara langsung. Jika tidak, Anda dapat menggunakan Connect gateway.
Untuk mengakses cluster pengguna dari command line, Anda memerlukan file kubeconfig
.
Ada dua cara untuk mendapatkan file kubeconfig
:
Gunakan gateway Connect untuk mengakses cluster dari komputer yang telah menginstal Google Cloud CLI. Dalam hal ini,
kubectl
menggunakankubeconfig
gateway Connect, yang meneruskan traffic dengan aman ke endpoint pribadi untuk Anda.Untuk akses langsung ke endpoint pribadi, buat file
kubeconfig
di workstation admin dan kelola cluster dari workstation admin.
Pastikan untuk menunggu hingga Konsol Google Cloud menunjukkan bahwa status cluster pengguna responsif.
Hubungkan gateway
initialize gcloud CLI untuk digunakan dengan project fleet host, atau jalankan perintah berikut untuk login dengan Akun Google Anda, tetapkan project host fleet Anda sebagai default, dan perbarui komponen:
gcloud auth login gcloud config set project PROJECT_ID gcloud components update
Ambil kredensial cluster yang digunakan untuk berinteraksi dengan gateway Connect. Dalam perintah berikut, ganti
MEMBERSHIP_NAME
dengan nama cluster Anda. Di GKE pada Bare Metal, nama keanggotaannya sama dengan nama cluster.gcloud container fleet memberships get-credentials MEMBERSHIP_NAME
Perintah ini menampilkan
kubeconfig
khusus gateway Connect khusus yang memungkinkan Anda terhubung ke cluster melalui gateway.
Setelah memiliki kredensial yang diperlukan, Anda dapat menjalankan perintah menggunakan kubectl
seperti biasa untuk cluster Kubernetes mana pun, dan Anda tidak perlu menentukan nama file kubeconfig
, misalnya:
kubectl get namespaces
Workstation admin
Gunakan perintah bmctl get credentials
untuk mengambil file kubeconfig
untuk
cluster pengguna yang baru dibuat.
bmctl get credentials --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH
Ganti kode berikut:
CLUSTER_NAME: nama cluster pengguna target.
ADMIN_KUBECONFIG_PATH: jalur ke file
kubeconfig
cluster admin.
kubeconfig
dengan kredensial cluster pengguna ditulis ke file,
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-TIMESTAMP-kubeconfig
.
TIMESTAMP dalam nama file menunjukkan tanggal dan waktu file dibuat.
Karena file ini berisi kredensial autentikasi untuk cluster, Anda harus menyimpannya di lokasi yang aman dengan akses yang dibatasi.