Halaman ini menjelaskan cara membuat cluster pengguna menggunakan konsol Google Cloud , Google Cloud CLI (gcloud CLI), atau Terraform.
Apa yang dimaksud dengan GKE On-Prem API?
GKE On-Prem API adalah API yang dihosting di Google Cloudyang memungkinkan Anda mengelola siklus proses cluster lokal menggunakan Terraform dan aplikasiGoogle 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, GKE On-Prem API harus menyimpan metadata tentang status cluster Anda di Google Cloud, menggunakan regionGoogle 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 API GKE On-Prem, Anda menentukan projectGoogle Cloud . Setelah dibuat, cluster akan otomatis didaftarkan ke fleet project yang ditentukan. Project ini disebut sebagai project host fleet. Project host fleet tidak dapat diubah setelah cluster dibuat.
Jika mau, 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 API GKE On-Prem.
Memberikan izin IAM
Jika Anda bukan Project Owner, Anda harus diberi roles/gkeonprem.admin.
Jika ingin mengakses halaman Google Kubernetes Engine di konsol, Anda juga harus memiliki peran berikut:
Setelah cluster dibuat, jika Anda bukan Project Owner dan ingin menggunakan gateway koneksi 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.gatewayReadersudah 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 host fleet.
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 diaktifkan secara otomatis.
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 kolom
gkeConnect.projectIDpada cluster admin tersebut, yang disebut sebagai project host fleet, harus merupakan project yang sama dengan project tempat Anda akan membuat cluster pengguna.
Prasyarat mesin node cluster
Tinjau Prasyarat mesin node cluster untuk memastikan bahwa mesin 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.
- gcloud CLI versi terbaru.
kubectluntuk menjalankan perintah terhadap cluster Kubernetes. Jika Anda perlu menginstalkubectl, ikuti petunjuk ini.
Membuat cluster pengguna
Anda dapat menggunakan Terraform, konsol Google Cloud , atau Google Cloud CLI (gcloud CLI) untuk membuat cluster yang dikelola oleh GKE On-Prem API. Jika ini adalah pertama kalinya Anda menginstal Google Distributed Cloud, Anda mungkin akan menganggap konsol sebagai alat yang paling mudah digunakan.
Setelah Anda lebih memahami informasi yang perlu Anda berikan untuk membuat cluster, Anda mungkin akan merasa Terraform atau gcloud CLI lebih praktis, terutama jika Anda akan membuat lebih dari satu cluster. Terraform adalah alat infrastructure as code berstandar industri. 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 file teks dan membuat perubahan sesuai kebutuhan untuk membuat cluster tambahan. Jika Anda menggunakan alat CI/CD, seperti Cloud Build, Anda dapat menggunakan perintah gcloud untuk membuat cluster dan node pool serta menentukan flag --impersonate-service-account untuk mengotomatiskan pembuatan.
Konsol
Sebagian besar setelan di konsol sesuai dengan kolom dalam file konfigurasi cluster.
Di konsol, buka halaman Create a 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 project tempat cluster admin didaftarkan. Setelah cluster pengguna dibuat, cluster tersebut akan otomatis didaftarkan ke fleet project yang dipilih.
Klik Next untuk mulai mengonfigurasi cluster.
Bagian berikut akan memandu Anda mengonfigurasi cluster pengguna.
Dasar-dasar cluster
Masukkan informasi dasar tentang cluster.
- Masukkan Name untuk cluster pengguna.
Di bagian Admin cluster, pilih cluster admin dari daftar.
Di kolom Google Cloud API Location, pilih region Google Clouddari daftar. Setelan ini menentukan region tempat API dan layanan berikut berjalan:
- GKE On-Prem API (
gkeonprem.googleapis.com) - Layanan fleet (
gkehub.googleapis.com) - Hubungkan layanan (
gkeconnect.googleapis.com)
Setelan ini juga mengontrol region tempat penyimpanan hal berikut:
- Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
- Data Cloud Logging dan Cloud Monitoring 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 (
Pilih versi untuk cluster pengguna Anda. Cluster pengguna harus memiliki versi minor yang sama dengan cluster admin atau satu versi minor lebih rendah dari cluster admin.
Sebagai pembuat cluster, Anda diberi hak istimewa admin cluster ke cluster. Atau, masukkan alamat email pengguna lain yang akan mengelola cluster di kolom Admin user.
Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan role-based access control (RBAC) Kubernetes ke cluster untuk memberi Anda dan pengguna admin lainnya peran
clusterrole/cluster-adminKubernetes, yang memberikan akses penuh ke setiap resource di cluster di semua namespace.Di bagian Node configuration, tentukan hal berikut:
Maximum Pods per node: Masukkan jumlah maksimum Pod yang dapat dijalankan pada satu node. Nilai yang diizinkan adalah 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, lihat Jaringan Pod dan Service.Runtime container: containerd adalah satu-satunya runtime container yang tersedia untuk cluster Anda.
Klik Next untuk membuka bagian Networking.
Jaringan
Di bagian ini, Anda akan menentukan alamat IP untuk node, Pod, dan Service cluster Anda. Jika Anda menggunakan load balancing yang dipaketkan dengan MetalLB, Anda juga harus mengonfigurasinya.
Di bagian node Control plane, masukkan alamat IPv4 setiap node bidang kontrol. Node bidang kontrol menjalankan workload sistem. Biasanya, ini adalah 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. Kolom ini dapat diubah setiap kali Anda mengupdate atau mengupgrade cluster.
Klik + Add IP Address sesuai kebutuhan untuk memasukkan lebih banyak alamat IP.
Di bagian Load balancer, pilih load balancer dari daftar Mode yang akan disiapkan untuk cluster Anda. Lihat Ringkasan load balancer untuk mengetahui informasi selengkapnya.
Dipaketkan dengan MetalLB
Mengonfigurasi load balancing dengan load balancer MetalLB yang dipaketkan. Dengan opsi ini, Google Distributed Cloud men-deploy load balancer Lapisan 4 yang berjalan di kumpulan worker node khusus atau di node yang sama dengan bidang kontrol.
Di bagian Load balancer node pools, pilih salah satu opsi berikut:
Gunakan node bidang kontrol: 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 worker node khusus. Semua node di node pool load balancer harus berada di subnet Lapisan 2 yang sama dengan IP virtual (VIP) load balancer yang Anda konfigurasi di bagian Load balancer address pools.
Di kolom Load balancer node pool IP 1, masukkan alamat IPv4 untuk node di node pool load balancer Anda.
Klik + Add IP address sesuai kebutuhan untuk memasukkan alamat IP tambahan.
Di bagian Load balancer address pools, tambahkan satu atau beberapa kumpulan alamat untuk dipilih oleh pengontrol MetalLB dan ditetapkan ke Service berjenis
LoadBalancer. VIP ingress, yang Anda tentukan di bagian Virtual IPs, harus berada di salah satu pool 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 kumpulan, gunakan /32 dalam notasi CIDR (misalnya: 192.0.2.1/32).
Jika VIP ingress tidak berada dalam rentang alamat IP, pilih + Add IP Address Range dan masukkan rentang alamat IP lain yang menyertakan VIP ingress.
Alamat IP di setiap pool tidak boleh tumpang-tindih, dan harus berada di subnet yang sama dengan node cluster.
Di bagian Penetapan alamat IP, pilih salah satu opsi berikut:
- Otomatis: Pilih opsi ini jika Anda ingin pengontrol MetalLB otomatis menetapkan alamat IP dari kumpulan alamat ke Service jenis
LoadBalancer. - Manual: Pilih opsi ini jika Anda ingin menggunakan alamat dari kumpulan untuk menentukan alamat secara manual bagi Service jenis
LoadBalancer.
- Otomatis: Pilih opsi ini jika Anda ingin pengontrol MetalLB otomatis menetapkan alamat IP dari kumpulan alamat ke Service jenis
Klik Avoid buggy IP addresses jika Anda ingin pengontrol MetalLB tidak menggunakan alamat IP dari kumpulan yang diakhiri dengan .0 atau .255. Hal ini menghindari masalah perangkat konsumen yang bermasalah yang secara keliru menghapus traffic yang dikirim ke alamat IP khusus tersebut.
Setelah selesai, klik Selesai.
Jika perlu, klik Add Address Pool.
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 IPs, masukkan informasi berikut:
VIP 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 dalam 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 pada load balancer untuk proxy ingress. Masukkan alamat dari salah satu kumpulan alamat load balancer.
Di bagian Service and Pod CIDRs, tentukan rentang alamat IP Service dan Pod Kubernetes dalam notasi CIDR. Rentang tersebut tidak boleh tumpang-tindih satu sama lain, atau dengan alamat mana pun di luar cluster yang ingin Anda jangkau dari dalam cluster. Sebaiknya gunakan rentang alamat IP pribadi yang ditentukan oleh RFC 1918. Konsol menyediakan rentang alamat default berikut, tetapi Anda dapat mengubahnya:
Service CIDR:
10.96.0.0/20Jika Anda tidak menerima default, masukkan rentang CIDR antara /24 dan /12, dengan /12 menyediakan alamat IP terbanyak.Pod CIDR:
192.168.0.0/16Jika Anda tidak menerima default, masukkan rentang CIDR antara /18 dan /8, dengan /8 menyediakan alamat IP terbanyak.
Di bagian atribut Advanced attributes, tentukan hal berikut (opsional):
URL Proxy: Alamat HTTP server proxy Anda. Sertakan nomor port meskipun sama dengan port default skema, misalnya:
http://my-proxy.example.local:80URL: Daftar alamat IP, rentang alamat IP, nama host, dan nama domain yang dipisahkan koma yang tidak boleh melewati server proxy. Saat Google Distributed Cloud mengirim permintaan ke salah satu alamat, host, atau domain ini, permintaan tersebut akan dikirim secara langsung.
Klik Berikutnya.
Penyimpanan
Software Distributed Cloud hanya menyediakan antarmuka penyimpanan blok dan file. Opsi default tersedia, tetapi Anda dapat menyesuaikan konfigurasinya. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi penyimpanan lokal.
Secara opsional, Anda dapat mengonfigurasi hal berikut:
Pemasangan 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
PersistentVolumeslokal yang didukung oleh subdirektori dalam sistem file bersama. Subdirektori ini dibuat secara otomatis selama pembuatan cluster.
Klik Berikutnya.
Fitur
Untuk membantu Anda memantau, memecahkan masalah, dan mengoperasikan cluster, hal berikut diaktifkan secara otomatis dan tidak dapat dinonaktifkan:
- Cloud Logging layanan sistem
- Cloud Monitoring untuk layanan sistem
- Log audit Aktivitas Admin
Membuat node pool di konsol
Cluster Anda harus memiliki setidaknya satu node pool untuk worker node. Node pool adalah template untuk grup worker node yang dibuat di cluster ini.
Di konsol, Anda mengonfigurasi setidaknya satu node pool (atau menerima nilai default), lalu membuat cluster. Anda dapat menambahkan node pool tambahan setelah cluster dibuat. Dengan gcloud CLI, Anda membuat cluster terlebih dahulu, lalu menambahkan satu atau beberapa node pool ke cluster yang baru dibuat.
Klik default pool di menu navigasi sebelah kiri.
Di bagian Node pool defaults, masukkan Node pool name atau terima "default-pool" sebagai nama.
Di bagian Worker nodes, masukkan alamat IP mesin yang akan menjalankan cluster.
Di bagian Node pool metadata (optional), jika Anda ingin menambahkan label dan taint Kubernetes, lakukan hal berikut:
- Klik + Add Kubernetes Labels. Masukkan Kunci dan Nilai untuk label. Ulangi jika perlu.
- Klik + Add Taint. Masukkan Key, Value, dan Effect untuk taint. Ulangi jika perlu.
Klik Verify and Complete untuk membuat cluster pengguna. Diperlukan waktu 15 menit atau lebih untuk membuat cluster pengguna. Konsol akan 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
Gunakan perintah berikut untuk membuat cluster pengguna:
gcloud container bare-metal clusters create
Setelah membuat cluster, Anda harus membuat setidaknya satu node pool menggunakan perintah berikut:
gcloud container bare-metal node-pools create
Sebagian besar flag untuk membuat cluster dan node pool sesuai dengan kolom dalam file konfigurasi cluster pengguna. Untuk membantu Anda memulai, Anda dapat menguji perintah lengkap di bagian Examples. Untuk mengetahui informasi tentang flag, lihat bagian yang mengikuti contoh, atau lihat referensi gcloud CLI.
Sebelum memulai
Versi yang Anda pilih saat membuat cluster pengguna harus merupakan versi yang didukung oleh cluster admin Anda. Selain itu, versi minor atau patch terbaru tidak tersedia di GKE On-Prem API hingga 7 hingga 14 hari setelah rilis. Anda dapat menjalankan perintah gcloud untuk mendapatkan daftar versi cluster yang didukung yang dapat Anda instal.
Pastikan untuk mengupdate komponen:
gcloud components update
Dapatkan nama dan lokasi keanggotaan fleet cluster admin Anda:
gcloud container fleet memberships list \ --project=FLEET_HOST_PROJECT_ID
Ganti
FLEET_HOST_PROJECT_IDdengan ID project tempat cluster admin terdaftar.Outputnya mirip dengan hal berikut ini:
NAME EXTERNAL_ID LOCATION admin-cluster-1 bb7803b4-8438-4b22-859f-4559b4b29072 global admin-cluster-2 ee16ee2b-6ec0-49fc-9413-3c89cbc70854 global admin-cluster-3 fc2b7ef5-39ff-4b63-b919-04c5adc67be4 us-west1
Lokasi menentukan tempat layanan Fleet dan Connect berjalan. Cluster admin yang dibuat sebelum versi 1.28 dikelola oleh layanan Fleet dan Connect global. Di versi 1.28 dan yang lebih baru, Anda dapat menentukan
globalatau region Google Cloud saat membuat cluster admin. Anda menentukan region dalam flag--admin-cluster-membership-locationpada contoh perintah berikut.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=ADMIN_CLUSTER_REGION \ --location=REGION
Ganti kode berikut:
ADMIN_CLUSTER_NAME: Nama cluster admin.FLEET_HOST_PROJECT_ID: ID project tempat cluster admin didaftarkan.ADMIN_CLUSTER_REGION: Region keanggotaan fleet cluster admin. Ini bersifat global atau region Google Cloud. Gunakan lokasi untuk cluster admin dari outputgcloud container fleet memberships list.REGION: Region Google Cloud yang akan Anda gunakan saat membuat cluster. Ini adalah region tempat GKE On-Prem API serta layanan Fleet dan Connect berjalan. Tentukanus-west1atau wilayah yang didukung.
Output perintah ini akan mirip dengan berikut ini:
versions: - version: 1.16.2 - version: 1.16.1 - version: 1.16.0 - version: 1.15.7 - version: 1.15.6 - version: 1.15.5
Sebaiknya gunakan versi tertinggi yang didukung untuk mendapatkan perbaikan dan peningkatan terbaru.
Contoh
Bagian ini memberikan 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 Anda gunakan. Lihat Ringkasan load balancer untuk mengetahui informasi selengkapnya.
Contoh ini membuat cluster tanpa node pool apa pun. Setelah cluster berjalan, Anda harus menambahkan node pool sebelum men-deploy workload.
MetalLB
Contoh ini menunjukkan cara membuat cluster pengguna dengan load balancer MetalLB yang dipaketkan.
gcloud container bare-metal clusters create USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership=ADMIN_CLUSTER_NAME \ --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership-location=ADMIN_CLUSTER_REGION \ --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 sepenuhnya, yang memiliki format berikut:projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAMEAtau, Anda dapat menetapkan
--admin-cluster-membershipke nama cluster admin, seperti dalam contoh perintah. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan--admin-cluster-membership-projectdan lokasi dengan--admin-cluster-membership-location. Lokasi cluster admin adalahglobalatau 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) berjalan. Tentukanus-west1atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat penyimpanan hal berikut:- Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
- Data Cloud Logging dan Cloud Monitoring 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 Google Distributed Cloud untuk cluster pengguna Anda. -
YOUR_EMAIL_ADDRESSdanANOTHER_EMAIL_ADDRESS: Jika Anda tidak menyertakan flag--admin-users, sebagai pembuat cluster, secara default Anda akan diberi hak istimewa admin cluster. Namun, jika Anda menyertakan--admin-usersuntuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti setelan default dan perlu menyertakan alamat email Anda dan alamat email administrator lain. Misalnya, untuk menambahkan dua administrator:--admin-users=sara@example.com \ --admin-users=amal@example.comSaat cluster dibuat, GKE On-Prem API menerapkan kebijakan role-based access control (RBAC) Kubernetes ke cluster untuk memberi Anda dan pengguna admin lainnya peran
clusterrole/cluster-adminKubernetes, yang memberikan akses penuh ke setiap resource di 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 memiliki segmen yang dimulai dengan kata kunci
pool, avoid-buggy-ip, manual-assign, dan
addresses. Pisahkan setiap segmen dengan koma.
pool: Nama pilihan Anda untuk pool.avoid-buggy-ips: Jika Anda menetapkan ini keTrue, pengontrol MetalLB tidak akan menetapkan alamat IP yang diakhiri dengan .0 atau .255 ke Service. Hal ini menghindari masalah perangkat konsumen yang bermasalah yang secara keliru menghapus traffic yang dikirim ke alamat IP khusus tersebut. Jika tidak ditentukan, setelan defaultnya adalahFalse.manual-assign: Jika Anda tidak ingin pengontrol MetalLB otomatis menetapkan alamat IP dari kumpulan ini ke Service, tetapkan ini keTrue. Kemudian, developer dapat membuat Service jenisLoadBalancerdan menentukan secara manual salah satu alamat dari pool. Jika tidak ditentukan,manual-assignakan ditetapkan keFalse.Dalam daftar
addresses: Setiap alamat harus berupa rentang dalam format CIDR atau rentang dengan tanda hubung. Untuk menentukan satu alamat IP dalam kumpulan (seperti untuk VIP ingress), gunakan /32 dalam notasi CIDR (mis. 192.0.2.1/32).
Perhatikan aturan sintaksis berikut:
- Mengapit 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 dalam 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 Anda perlu menjalankan load balancer di kumpulan worker node khusus, tentukan flag ini untuk setiap node. Semua node di node pool load balancer harus berada di 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-ipdanlabels. Pisahkan setiap segmen dengan koma.node-ip: Alamat IP node di node pool load balancer Anda. Anda hanya dapat menentukan satunode-ipper flag. Jika Anda perlu menentukan lebih dari satu node, sertakan flag lagi untuk setiap node.labels: Satu atau beberapa pasangan kunci=nilai yang dilampirkan ke node.
Perhatikan aturan sintaksis berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap pasangan kunci=nilai di segmen
labelsdengan 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 di node pool load balancer. Pisahkan daftar pasangan kunci=nilai 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 di node pool load balancer. Setiap taint adalah pasangan key=value yang terkait dengan efek, yang harus berupa salah satu dari berikut ini: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 node pool load balancer. Semua node diberi label dengan
lb-pool-key=lb-pool-valuedan 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 mengupdate 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-ipdanlabels. Pisahkan setiap segmen dengan koma. -
node-ip: Alamat IP node bidang kontrol. Anda hanya dapat menentukan satunode-ipper flag. Jika Anda perlu menentukan lebih dari satu node, sertakan flag lagi untuk setiap node. -
labels: Satu atau beberapa pasangan kunci=nilai yang dilampirkan ke node.Perhatikan aturan sintaksis berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap pasangan kunci=nilai di segmen
labelsdengan titik koma.
Secara opsional, sertakan flag berikut:
-
--control-plane-node-labels: Gunakan flag ini untuk menambahkan label ke semua node bidang kontrol. Pisahkan daftar pasangan kunci=nilai 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 pasangan key=value yang terkait dengan efek, yang harus berupa salah satu dari berikut ini:PreferNoSchedule,NoSchedule, atauNoExecute.Contoh berikut menambahkan tiga node ke node bidang kontrol. Semua node diberi label dengan
cp-node-pool-key=cp-node-pool-valuedan 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 pada load balancer untuk server Kubernetes API cluster pengguna.Contoh:
--control-plane-vip=203.0.113.3 -
CONTROL_PLANE_LB_PORT: Port yang digunakan load balancer untuk 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 ingress.Contoh:
--ingress-vip=10.251.134.80Alamat IP untuk VIP ingress harus berada di salah satu kumpulan alamat MetalLB.
CIDR Service dan Pod
-
SERVICE_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Service di cluster Anda. Rentang CIDR harus antara /24 dan /12, dengan /12 menyediakan 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 menyediakan 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 persistent volume. 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 untuk men-scroll jika diperlukan untuk mengisi placeholder ADMIN_CLUSTER_NAME untuk flag --admin-cluster-membership.
gcloud container bare-metal clusters create USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership=ADMIN_CLUSTER_NAME \ --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership-location=ADMIN_CLUSTER_REGION \ --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 sepenuhnya, yang memiliki format berikut:projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAMEAtau, Anda dapat menetapkan
--admin-cluster-membershipke nama cluster admin, seperti dalam contoh perintah. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan--admin-cluster-membership-projectdan lokasi dengan--admin-cluster-membership-location. Lokasi cluster admin adalahglobalatau 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) berjalan. Tentukanus-west1atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat penyimpanan hal berikut:- Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
- Data Cloud Logging dan Cloud Monitoring 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 Google Distributed Cloud untuk cluster pengguna Anda. -
YOUR_EMAIL_ADDRESSdanANOTHER_EMAIL_ADDRESS: Jika Anda tidak menyertakan flag--admin-users, sebagai pembuat cluster, secara default Anda akan diberi hak istimewa admin cluster. Namun, jika Anda menyertakan--admin-usersuntuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti setelan default dan perlu menyertakan alamat email Anda dan alamat email administrator lain. Misalnya, untuk menambahkan dua administrator:--admin-users=sara@example.com \ --admin-users=amal@example.comSaat cluster dibuat, GKE On-Prem API menerapkan kebijakan role-based access control (RBAC) Kubernetes ke cluster untuk memberi Anda dan pengguna admin lainnya peran
clusterrole/cluster-adminKubernetes, yang memberikan akses penuh ke setiap resource di 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 mengupdate 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-ipdanlabels. Pisahkan setiap segmen dengan koma. -
node-ip: Alamat IP node bidang kontrol. Anda hanya dapat menentukan satunode-ipper flag. Jika Anda perlu menentukan lebih dari satu node, sertakan flag lagi untuk setiap node. -
labels: Satu atau beberapa pasangan kunci=nilai yang dilampirkan ke node.Perhatikan aturan sintaksis berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap pasangan kunci=nilai di segmen
labelsdengan titik koma.
Secara opsional, sertakan flag berikut:
-
--control-plane-node-labels: Gunakan flag ini untuk menambahkan label ke semua node bidang kontrol. Pisahkan daftar pasangan kunci=nilai 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 pasangan key=value yang terkait dengan efek, yang harus berupa salah satu dari berikut ini:PreferNoSchedule,NoSchedule, atauNoExecute.Contoh berikut menambahkan tiga node ke node bidang kontrol. Semua node diberi label dengan
cp-node-pool-key=cp-node-pool-valuedan 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 pada load balancer untuk server Kubernetes API cluster pengguna.Contoh:
--control-plane-vip=203.0.113.3 -
CONTROL_PLANE_LB_PORT: Port yang digunakan load balancer untuk 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 ingress.Contoh:
--ingress-vip=10.251.134.80Alamat IP untuk VIP ingress harus berada di salah satu kumpulan alamat MetalLB.
CIDR Service dan Pod
-
SERVICE_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Service di cluster Anda. Rentang CIDR harus antara /24 dan /12, dengan /12 menyediakan 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 menyediakan 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 persistent volume. 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, Anda mungkin ingin
menyertakan --validate-only untuk memvalidasi konfigurasi yang Anda tentukan dalam
flag ke perintah gcloud. Jika Anda sudah siap membuat cluster,
hapus flag ini dan jalankan perintah.
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
Diperlukan 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, lihat referensi gcloud CLI.
Membuat node pool
Setelah cluster dibuat, Anda harus membuat minimal satu node pool sebelum men-deploy workload. Node pool adalah template untuk grup worker node yang dibuat di cluster ini. Dengan gcloud CLI, Anda 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 node pool. Nama 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 worker node. 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-ipdanlabels. Pisahkan setiap segmen dengan koma.node-ip: Alamat IP worker node. Anda hanya dapat menentukan satunode-ipper flag. Tambahkan flag ini lagi untuk setiap node di node pool.labels: Satu atau beberapa pasangan kunci=nilai yang dilampirkan ke node.
Perhatikan aturan sintaksis berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap pasangan kunci=nilai di segmen
labelsdengan titik koma.
Secara opsional, Anda dapat menentukan hal berikut:
--node-labels=KEY=VALUE,...: Daftar label Kubernetes yang dipisahkan koma (pasangan kunci=nilai) yang diterapkan ke setiap node dalam kumpulan.--node-taints=KEY=VALUE:EFFECT,...Daftar taint Kubernetes yang dipisahkan koma yang diterapkan ke setiap node dalam pool. Taint adalah pasangan key=value yang terkait dengan efek. Taint digunakan dengan toleransi untuk penjadwalan Pod. Tentukan salah satu dari hal berikut untukEFFECT:NoSchedule,PreferNoSchedule,NoExecute.
Contoh berikut membuat node pool bernama default-pool di
user-cluster-, dan menambahkan dua node ke node pool. Kedua node diberi label dengan node-pool-key=node-pool-value dan memiliki taint dedicated=experimental:PreferNoSchedule,
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, lihat referensi gcloud CLI.
Terraform
Sebelum memulai
Versi Distributed Cloud software only for bare metal yang Anda pilih saat membuat cluster pengguna harus merupakan versi yang didukung oleh cluster admin Anda. Selain itu, versi minor atau patch terbaru tidak tersedia di GKE On-Prem API hingga 7 hingga 14 hari setelah rilis. Anda dapat menjalankan perintah gcloud untuk mendapatkan daftar versi yang didukung yang dapat Anda gunakan untuk menginstal cluster pengguna.
Pastikan untuk mengupdate komponen:
gcloud components update
Dapatkan nama dan lokasi keanggotaan fleet cluster admin Anda:
gcloud container fleet memberships list \ --project=FLEET_HOST_PROJECT_ID
Ganti
FLEET_HOST_PROJECT_IDdengan ID project tempat cluster admin terdaftar.Outputnya mirip dengan hal berikut ini:
NAME EXTERNAL_ID LOCATION admin-cluster-1 bb7803b4-8438-4b22-859f-4559b4b29072 global admin-cluster-2 ee16ee2b-6ec0-49fc-9413-3c89cbc70854 global admin-cluster-3 fc2b7ef5-39ff-4b63-b919-04c5adc67be4 us-west1
Lokasi menentukan tempat layanan Fleet dan Connect berjalan. Cluster admin yang dibuat sebelum versi 1.28 dikelola oleh layanan Fleet dan Connect global. Di versi 1.28 dan yang lebih baru, Anda dapat menentukan
globalatau region Google Cloud saat membuat cluster admin. Anda menentukan region dalam flag--admin-cluster-membership-locationpada contoh perintah berikut.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=ADMIN_CLUSTER_REGION \ --location=REGION
Ganti kode berikut:
ADMIN_CLUSTER_NAME: Nama cluster admin.FLEET_HOST_PROJECT_ID: ID project tempat cluster admin didaftarkan.ADMIN_CLUSTER_REGION: Region keanggotaan fleet cluster admin. Ini bersifat global atau region Google Cloud. Gunakan lokasi untuk cluster admin dari outputgcloud container fleet memberships list.REGION: Region Google Cloud yang akan Anda gunakan saat membuat cluster. Ini adalah region tempat GKE On-Prem API serta layanan Fleet dan Connect berjalan. Tentukanus-west1atau wilayah yang didukung.
Output perintah ini akan mirip dengan berikut ini:
versions: - version: 1.16.2 - version: 1.16.1 - version: 1.16.0 - version: 1.15.7 - version: 1.15.6 - version: 1.15.5
Sebaiknya gunakan versi tertinggi yang didukung untuk mendapatkan perbaikan dan peningkatan terbaru.
Contoh
Anda dapat menggunakan contoh konfigurasi dasar berikut untuk membuat cluster pengguna dengan load balancer MetalLB yang dipaketkan. Untuk mengetahui informasi selengkapnya, lihat
dokumentasi referensi google_gkeonprem_bare_metal_cluster.
Menetapkan variabel di terraform.tfvars
Contoh ini menyediakan contoh file variabel untuk diteruskan ke main.tf, yang
menunjukkan cara mengonfigurasi load balancer MetalLB yang dipaketkan.
Buat clone repositori
anthos-samplesdan ubah ke direktori tempat contoh Terraform berada:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallbContoh ini menyediakan contoh file variabel untuk diteruskan ke
main.tf.Buat salinan file
terraform.tfvars.sample:cp terraform.tfvars.sample terraform.tfvarsUbah nilai parameter di
terraform.tfvarsdan simpan file.Daftar berikut menjelaskan 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 didaftarkan. Setelah cluster pengguna dibuat, cluster tersebut 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 (gkeonprem.googleapis.com), layanan Fleet (gkehub.googleapis.com), dan layanan Connect (gkeconnect.googleapis.com) berjalan. Tentukanus-west1atau wilayah yang didukung.
admin_cluster_name: Nama cluster admin yang mengelola cluster pengguna. Contoh ini mengasumsikan bahwa cluster admin menggunakanglobalsebagai region. Jika Anda memiliki cluster admin regional:Buka
main.tfdi editor teks.Telusuri
admin_cluster_membership, yang terlihat seperti berikut:admin_cluster_membership = "projects/${var.project_id}/locations/global/memberships/${var.admin_cluster_name}"Ubah
globalke region yang digunakan cluster admin dan simpan file.
bare_metal_version: Versi Google Distributed Cloud untuk cluster pengguna Anda. Tentukan versi yang sama dengan cluster admin, atau versi yang tidak lebih dari satu versi minor lebih rendah dari cluster admin.admin_user_emails: Daftar alamat email pengguna yang akan diberi hak istimewa administratif di cluster. Pastikan untuk menambahkan alamat email Anda jika Anda ingin mengelola cluster.Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan role-based access control (RBAC) Kubernetes ke cluster untuk memberi pengguna admin peran
clusterrole/cluster-adminKubernetes, yang memberikan akses penuh ke setiap resource di cluster di semua namespace. Hal ini juga memungkinkan pengguna login ke konsol menggunakan identitas Google mereka.cluster_name: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Nama 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 workload sistem. 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 untuk HA. Anda dapat mengubah alamat ini setiap kali mengupdate atau mengupgrade cluster.worker_node_ips: Daftar satu atau beberapa alamat IPv4 untuk mesin worker node.control_plane_vip: Alamat IP virtual (VIP) yang telah Anda pilih untuk dikonfigurasi pada 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 ingress harus berada di salah satu pool ini.
Simpan perubahan di
terraform.tfvars.Lakukan inisialisasi dan buat rencana Terraform:
terraform initTerraform menginstal library yang diperlukan, seperti penyedia Google Cloud .
Tinjau konfigurasi dan buat perubahan jika diperlukan:
terraform planTerapkan Terraform plan untuk membuat cluster pengguna:
terraform applyDiperlukan 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 dikonfigurasi dengan kebijakan kontrol akses berbasis peran (RBAC) Kubernetes sehingga Anda dapat login ke cluster menggunakan identitas Google Cloud Anda. Saat membuat cluster pengguna
dengan gcloud CLI, secara default Anda akan diberi kebijakan RBAC ini
jika tidak menyertakan flag --admin-users. Jika Anda menyertakan
--admin-users untuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti
setelan default dan Anda harus menyertakan alamat email Anda dan
alamat email administrator lain. Untuk mengetahui informasi selengkapnya tentang
kebijakan IAM dan RBAC yang diperlukan, lihat
Menyiapkan autentikasi Google Identity.
Semua cluster memiliki endpoint kanonis. Endpoint ini mengekspos server Kubernetes API yang digunakan kubectl dan layanan lainnya untuk berkomunikasi dengan bidang kontrol cluster Anda melalui port TCP 443. Endpoint ini tidak dapat diakses di internet publik. Jika memiliki akses ke endpoint pribadi cluster melalui VPC, Anda dapat terhubung langsung ke endpoint pribadi dan membuat file kubeconfig secara langsung. Atau, Anda dapat menggunakan
gateway Connect.
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,
kubectlmenggunakankubeconfigConnect gateway, yang meneruskan traffic dengan aman ke endpoint pribadi atas nama Anda.Untuk akses langsung ke endpoint pribadi, buat file
kubeconfigdi workstation admin Anda dan kelola cluster dari workstation admin Anda.
Pastikan untuk menunggu hingga konsol Google Cloud menunjukkan bahwa status cluster pengguna responsif.
Connect gateway
Lakukan inisialisasi gcloud CLI untuk digunakan dengan project host fleet, atau jalankan perintah berikut untuk login dengan Akun Google Anda, tetapkan project host fleet sebagai default, dan update komponen:
gcloud auth login gcloud config set project PROJECT_ID gcloud components updateAmbil kredensial cluster yang digunakan untuk berinteraksi dengan gateway Connect. Pada perintah berikut, ganti
MEMBERSHIP_NAMEdengan nama cluster Anda. Untuk Distributed Cloud khusus software untuk bare metal, nama keanggotaan sama dengan nama cluster.gcloud container fleet memberships get-credentials MEMBERSHIP_NAMEPerintah ini menampilkan
kubeconfigkhusus gateway koneksi yang memungkinkan Anda terhubung ke cluster melalui gateway.
Setelah memiliki kredensial yang diperlukan, Anda dapat menjalankan perintah menggunakan
kubectl seperti biasa untuk cluster Kubernetes apa 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
kubeconfigcluster 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 terbatas.