Membuat cluster pengguna menggunakan klien GKE On-Prem API

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 siklus proses cluster lokal Anda menggunakan Terraform dan standar aplikasi Google Cloud. GKE On-Prem API berjalan di infrastruktur IT. Terraform, konsol, dan gcloud CLI adalah klien dari API, dan mereka menggunakan API tersebut 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. Ini Dengan metadata, API dapat mengelola siklus proses cluster menyertakan data khusus beban kerja.

Saat membuat cluster menggunakan klien GKE On-Prem API, Anda menentukan project Google Cloud Anda. Setelah dibuat, cluster akan otomatis terdaftar ke akun fleet. Proyek ini disebut sebagai project host perangkat. Project host fleet tidak dapat diubah setelah cluster dibuat.

Jika ingin, Anda dapat membuat cluster pengguna dengan membuat cluster pengguna file konfigurasi dan penggunaan 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 dengan GKE On-Prem API.

Sebelum memulai

Bagian ini menjelaskan persyaratan untuk membuat cluster pengguna menggunakan Klien GKE On-Prem API.

Memberikan izin IAM

Jika Anda bukan pemilik project, Anda harus diberi izin roles/gkeonprem.admin.

Jika Anda ingin mengakses halaman GKE Enterprise dan Google Kubernetes Engine di 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 mode read-only akses ke cluster, roles/gkehub.gatewayReader sudah memadai.

  • 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 bahwa semua Google API yang diperlukan diaktifkan di project host fleet.

Jika menggunakan gcloud CLI untuk membuat cluster, Anda harus mengaktifkan GKE On-Prem API. Jika Anda menggunakan konsol pembuatan cluster, maka GKE On-Prem API akan otomatis aktif.

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. Tujuan cluster admin harus:

  • Memiliki akses ke server Kubernetes API di cluster pengguna setelah dibuat.

  • Memiliki konektivitas jaringan ke semua node di cluster pengguna setelah cluster tersebut dibuat.

  • Harus terdaftar ke fleet. Tujuan project ID yang dikonfigurasi di gkeConnect.projectID, di cluster admin tersebut, yang disebut sebagai project host fleet, harus sama dengan project tempat Anda akan membuat cluster pengguna.

Prasyarat mesin node cluster

Tinjau Prasyarat mesin node cluster untuk memastikan bahwa komputer yang akan menjalankan kelompok pengguna memenuhi prasyaratnya.

Akses command line

Setelah cluster dibuat, jika Anda ingin menggunakan gateway Connect untuk menjalankan kubectl terhadap cluster pengguna di komputer selain workstation admin, instal baris perintah berikut alat di komputer yang akan Anda gunakan.

  • Versi terbaru gcloud CLI.
  • kubectl untuk menjalankan perintah terhadap cluster Kubernetes. Jika Anda memerlukan untuk menginstal kubectl, ikuti petunjuk.

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 menemukan konsol alat yang paling mudah digunakan.

Setelah Anda lebih terbiasa dengan informasi yang perlu Anda berikan membuat cluster, Anda mungkin menemukan Terraform atau gcloud CLI praktis, terutama jika Anda akan membuat lebih dari satu cluster. Terraform adalah infrastruktur standar industri sebagai alat kode. Jika organisasi Anda sudah menggunakan Terraform, maka Anda mungkin ingin menggunakannya untuk membuat dan mengelola siklus proses cluster.

Dengan gcloud CLI, Anda dapat menyimpan perintah dengan argumennya {i>file<i} teks dan membuat perubahan yang diperlukan untuk membuat cluster tambahan. Jika Anda dengan menggunakan alat CI/CD, seperti Cloud Build, Anda dapat menggunakan Perintah gcloud untuk membuat cluster dan kumpulan node, serta menentukan --impersonate-service-account untuk mengotomatiskan pembuatan.

Konsol

Sebagian besar setelan di konsol sesuai dengan bidang dalam file konfigurasi cluster.

  1. Di konsol, buka halaman Create a Cluster Cloud terdistribusi.

    Buka Membuat cluster Cloud Terdistribusi

  2. Pilih project Google Cloud tempat Anda ingin membuat cluster. Project yang dipilih juga digunakan sebagai project host fleet. Ini harus project yang sama tempat cluster admin didaftarkan. Setelah pengguna dibuat, cluster akan otomatis didaftarkan ke cluster yang dipilih armada proyek Anda.

  3. Klik Next untuk mulai mengonfigurasi cluster.

Bagian berikut akan memandu Anda mengonfigurasi cluster pengguna.

Dasar-dasar cluster

Masukkan informasi dasar tentang cluster.

  1. Masukkan Nama untuk cluster pengguna.
  2. Pada Admin cluster, pilih cluster admin dari daftar.

  3. Di kolom Google Cloud API Location, pilih kolom Google Cloud region dari daftar. Setelan ini menentukan wilayah tempat API dan layanan berikut dijalankan:

    • GKE On-Prem API (gkeonprem.googleapis.com)
    • Layanan armada (gkehub.googleapis.com)
    • Hubungkan layanan (gkeconnect.googleapis.com)

    Setelan ini juga mengontrol 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 komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

    Nama cluster, project, dan lokasi secara unik mengidentifikasi cluster di Google Cloud.

  4. Pilih versi Google Distributed Cloud untuk cluster pengguna Anda. Cluster pengguna harus berupa versi minor yang sama dengan cluster admin atau satu versi minor lebih rendah dari cluster admin.

  5. Sebagai pembuat cluster, Anda diberi hak istimewa admin cluster . Atau, masukkan alamat email pengguna lain yang akan mengelola cluster di kolom Admin user.

    Saat cluster dibuat, GKE On-Prem API menerapkan Kubernetes kebijakan role-based access control (RBAC) ke cluster untuk memberi Anda dan peran clusterrole/cluster-admin Kubernetes kepada pengguna admin lain, yang memberikan akses penuh ke setiap resource di cluster di semua namespace.

  6. Di bagian Node configuration, tentukan hal berikut:

    • Pod Maksimum per node: Masukkan jumlah maksimum Pod yang dapat berjalan pada satu {i>node<i}. Nilai yang diizinkan antara 32250, inklusif. Kubernetes menetapkan blok Classless Inter-Domain Routing (CIDR) ke setiap node, sehingga tiap pod dapat memiliki alamat IP 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.

    • Runtime container: containerd adalah satu-satunya container yang tersedia runtime untuk cluster Anda.

  7. Klik Berikutnya untuk membuka bagian Jaringan.

Jaringan

Di bagian ini, Anda akan menentukan alamat IP untuk node cluster, Pod, dan Layanan Google. Jika Anda menggunakan load balancing yang dipaketkan dengan MetalLB, mengonfigurasinya juga.

  1. Di bagian node Bidang kontrol, masukkan alamat IPv4 masing-masing {i>node<i} bidang kontrol. Node bidang kontrol menjalankan beban kerja sistem. Biasanya, instance ini dapat berupa satu mesin jika menggunakan deployment minimum atau tiga komputer jika menggunakan deployment ketersediaan tinggi (HA). Tentukan node dalam jumlah ganjil untuk memiliki kuorum mayoritas untuk HA. Bidang ini dapat berupa yang diubah setiap kali Anda mengupdate atau mengupgrade cluster.

    Klik + Tambahkan Alamat IP sesuai kebutuhan untuk memasukkan alamat IP lainnya.

  2. Di bagian Load balancer, pilih load balancer dari Mode yang akan disiapkan untuk cluster Anda. Lihat Ringkasan load balancer untuk informasi selengkapnya.

    Sepaket 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 pada kumpulan worker node khusus atau pada {i>node <i}sebagai bidang kontrol.

    1. Di bagian Node pool load balancer, pilih salah satu berikut ini:

      • Gunakan node bidang kontrol: Pilih opsi ini untuk menjalankan pemuatan pada node yang sama dengan bidang kontrol.

      • Buat kumpulan node load balancer: Pilih opsi lanjutan ini jika Anda perlu menjalankan load balancer pada kumpulan node pekerja. Semua node dalam kumpulan node load balancer harus di subnet Lapisan 2 yang sama dengan IP virtual load balancer (VIP) yang dikonfigurasi di Load balancer address pool bagian.

        1. Di kolom Load balancer node pool IP 1, masukkan Alamat IPv4 untuk node di kumpulan node load-balancer.

        2. Klik + Tambahkan alamat IP sesuai kebutuhan untuk memasukkan menggunakan alamat IP internalnya.

    2. Di bagian Kumpulan alamat load balancer, tambahkan satu atau beberapa kumpulan alamat yang dapat dipilih dan ditetapkan oleh pengontrol MetalLB ke Layanan jenis LoadBalancer. VIP masuknya, yang tentukan di bagian Virtual IPs, harus dalam salah satu Google Cloud.

      1. Masukkan nama untuk kumpulan alamat.

      2. 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 IP di kumpulan data, gunakan /32 dalam notasi CIDR (misalnya: 192.0.2.1/32).

      3. Jika VIP masuk tidak berada dalam rentang alamat, pilih + Tambahkan Rentang Alamat IP dan masukkan rentang alamat yang lain yang mencakup VIP traffic masuk.

        Alamat IP di setiap kumpulan tidak boleh tumpang-tindih, dan harus berada subnet yang sama dengan node cluster.

      4. Di bagian Assignment of IP addresses, pilih salah satu berikut ini:

        • Otomatis: Pilih opsi ini jika Anda menginginkan MetalLB pengontrol untuk menetapkan alamat IP secara otomatis dari kumpulan alamat ke Layanan jenis LoadBalancer.
        • Manual: Pilih opsi ini jika Anda ingin menggunakan dari kumpulan alamat untuk menentukan alamat secara manual bagi Layanan dari jenis LoadBalancer.
      5. Klik Hindari alamat IP yang berisi bug jika ingin menggunakan pengontrol MetalLB untuk tidak menggunakan alamat dari kumpulan yang berakhiran .0 atau .255. Hal ini dapat menghindari masalah perangkat konsumen yang memiliki bug keliru menjatuhkan lalu lintas data ke alamat IP khusus tersebut.

      6. Jika sudah selesai, klik Selesai.

      7. Jika perlu, klik Tambahkan Kumpulan Alamat.

    Load balancer manual

    Dengan load balancing manual, Anda mengonfigurasi load balancing Anda sendiri solusi untuk bidang kontrol dan lalu lintas bidang data. Anda harus mengonfigurasi VIP bidang kontrol di load balancer eksternal sebelum membuat . Load balancer bidang kontrol eksternal juga dapat digunakan untuk traffic bidang data, atau menyiapkan load balancer terpisah untuk bidang data. Untuk informasi selengkapnya, lihat Mengonfigurasi load balancing manual.

  3. Di bagian Virtual IPs, masukkan berikut ini:

    • VIP bidang kontrol: Alamat IP tujuan yang akan digunakan untuk traffic 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 rentang alamat mana pun yang digunakan untuk load balancer pada kumpulan alamat IP.

    • Port: Port tujuan yang digunakan untuk traffic yang dikirim ke Kubernetes Server API. Defaultnya adalah 443.

    • VIP Ingress: Alamat IP yang akan dikonfigurasi di load balancer untuk proxy masuknya. Masukkan alamat dari salah satu load balancer pada kumpulan alamat IP.

  4. Di bagian Service and Pod CIDRs, tentukan Service Kubernetes dan Rentang alamat IP pod dalam notasi CIDR. Keduanya tidak boleh tumpang tindih dengan lainnya, maupun alamat apa pun di luar cluster yang ingin Anda jangkau di dalam cluster. Sebaiknya gunakan rentang alamat IP pribadi didefinisikan oleh RFC 1918. Tujuan ini menyediakan rentang alamat default berikut, tetapi Anda juga dapat ubah:

    • CIDR layanan: 10.96.0.0/20 Jika Anda tidak menerima nilai default, masukkan rentang CIDR antara /24 dan /12, di mana /12 memberikan IP untuk alamat internal dan eksternal.

    • Pod CIDR: 192.168.0.0/16 Jika Anda tidak menerima nilai default, masukkan rentang CIDR antara /18 dan /8, di mana /8 memberikan IP untuk alamat internal dan eksternal.

  5. Di bagian atribut Atribut lanjutan, tentukan secara opsional berikut ini:

    • URL proxy: Alamat HTTP server proxy Anda. Sertakan nomor porta tersebut bahkan jika itu sama dengan porta {i>default<i} dari skema tersebut, untuk contoh: http://my-proxy.example.local:80

    • URL: Daftar alamat IP, rentang alamat IP, dan host yang dipisahkan koma nama, dan nama domain yang seharusnya tidak melewati server {i>proxy<i}. Kapan Google Distributed Cloud mengirimkan permintaan ke salah satu alamat, host, atau domain, permintaan akan dikirim secara langsung.

  6. Klik Berikutnya.

Penyimpanan

Google Distributed Cloud menyediakan antarmuka block and file storage. Mereka memiliki opsi default, tetapi Anda dapat menyesuaikan konfigurasinya. Untuk informasi selengkapnya, lihat Mengonfigurasi penyimpanan lokal.

  1. Anda juga 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 Anda lakukan sebelum atau sesudah pembuatan cluster.

    • Pangsa penyedia volume lokal: Menentukan konfigurasi untuk lokal PersistentVolumes yang didukung oleh subdirektori dalam sistem file bersama. Ini subdirektori dibuat secara otomatis selama pembuatan cluster.

  2. Klik Berikutnya.

Fitur

Untuk membantu Anda memantau, memecahkan masalah, dan mengoperasikan cluster, berikut ini adalah diaktifkan secara otomatis dan tidak dapat dinonaktifkan:

Membuat node pool

Cluster Anda harus memiliki setidaknya satu kumpulan node untuk node pekerja. J kumpulan node adalah template untuk grup worker node yang dibuat dalam cluster ini.

Di konsol, Anda mengonfigurasi setidaknya satu node pool (atau menyetujui nilai default), lalu buat cluster. Anda dapat menambahkan node tambahan setelah cluster dibuat. Dengan gcloud CLI, Anda membuat cluster terlebih dahulu, lalu tambahkan satu atau beberapa kumpulan node ke node yang baru dibuat .

  1. Klik kumpulan default di menu navigasi kiri.

  2. Di bagian Default kumpulan node, masukkan Nama kumpulan node atau setujui "default-pool" sebagai namanya.

  3. Di bagian Worker nodes, masukkan alamat IP mesin untuk cluster yang akan dijalankan.

  4. Di bagian Metadata kumpulan node (opsional), jika Anda ingin menambahkan Kubernetes label dan taint lakukan hal berikut:

    1. Klik + Add Kubernetes Labels. Masukkan Key dan Nilai untuk label. Ulangi jika perlu.
    2. Klik + Add Taint. Masukkan Kunci, Nilai, dan Efek untuk taint. Ulangi jika perlu.
  5. Klik Verify and Complete untuk membuat cluster pengguna. Dibutuhkan 15 menit atau lebih untuk membuat cluster pengguna. Konsol menampilkan status saat memverifikasi setelan dan membuat cluster dalam data Anda tengah.

    Jika ada masalah dengan konfigurasi, konsol akan menampilkan pesan {i>error<i} yang seharusnya cukup jelas bagi Anda untuk memperbaiki konfigurasi masalah, lalu coba lagi untuk membuat cluster.

gcloud CLI

Gunakan perintah berikut untuk membuat cluster pengguna:

gcloud container bare-metal clusters create

Setelah membuat cluster, Anda perlu membuat setidaknya satu kumpulan node menggunakan perintah berikut:

gcloud container bare-metal node-pools create

Sebagian besar flag untuk membuat cluster dan node pool sesuai dengan {i>field<i} pada file konfigurasi cluster pengguna. Untuk membantu Anda memulai, Anda dapat menguji perintah lengkap di Examples. Untuk informasi tentang tanda, lihat dokumentasi yang mengikuti contoh-contoh tersebut, atau merujuk pada Referensi gcloud CLI.

Sebelum memulai

Versi Google Distributed Cloud yang Anda pilih saat membuat cluster pengguna harus merupakan versi yang didukung oleh cluster admin Anda. Selain itu, versi minor atau patch tidak tersedia di GKE On-Prem API hingga versi 7 hingga 10 hari setelah rilis. Anda dapat menjalankan perintah gcloud untuk mendapatkan daftar versi yang didukung, yang dapat Anda instal di cluster pengguna.

  1. Pastikan untuk mengupdate komponen:

    gcloud components update
    
  2. Mendapatkan nama dan lokasi keanggotaan fleet cluster admin Anda:

    gcloud container fleet memberships list \
      --project=FLEET_HOST_PROJECT_ID
    

    Ganti FLEET_HOST_PROJECT_ID dengan ID project tempat cluster admin didaftarkan.

    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 dijalankan. Admin dan klaster yang dibuat sebelum 1.28 ini dikelola oleh Armada global Menghubungkan layanan. Pada versi 1.28 dan yang lebih baru, Anda dapat menentukan global atau region Google Cloud saat Anda membuat cluster admin. Anda menentukan region di flag --admin-cluster-membership-location pada contoh yang mengikutinya.

  3. 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 yang cluster admin terdaftar.

    • ADMIN_CLUSTER_REGION: Cluster admin region keanggotaan fleet. Layanan ini bersifat global atau Google Cloud teritorial Anda. Menggunakan lokasi untuk cluster admin dari output dari gcloud container fleet memberships list.

    • REGION: Region Google Cloud yang Anda akan digunakan saat Anda membuat cluster. Ini adalah region tempat GKE On-Prem API serta menjalankan layanan Fleet dan Connect. Menentukan us-west1 atau lainnya 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 versi terbaru perbaikan dan peningkatan kualitas.

Contoh

Bagian ini memberikan contoh perintah yang membuat cluster menggunakan load balancer MetalLB dan contoh yang 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 lebih lanjut tidak akurat atau tidak sesuai.

Contoh tersebut membuat cluster tanpa kumpulan node. Setelah cluster berjalan, Anda harus menambahkan node pool sebelum men-deploy workload.

MetalLB

Contoh ini menunjukkan cara membuat cluster pengguna dengan paket MetalLB dengan load balancer Jaringan Passthrough Eksternal Regional.

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 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 yang Anda tempat cluster akan dibuat. Proyek yang ditentukan juga digunakan sebagai project host fleet Anda. Project ini harus sama dengan project cluster admin terdaftar. Setelah dibuat, cluster pengguna akan otomatis terdaftar ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat.
  • ADMIN_CLUSTER_NAME: Nama cluster admin yang mengelola cluster pengguna. Di --admin-cluster-membership , Anda dapat menggunakan nama cluster yang sepenuhnya ditentukan, 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 dalam contoh perintah. Jika Anda hanya menggunakan nama cluster admin, setel project ID cluster admin dengan --admin-cluster-membership-project dan lokasi dengan --admin-cluster-membership-location. Cluster admin lokasinya adalah global atau region Google Cloud. Jika Anda perlu menemukan region, jalankan gcloud 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). Tentukan us-west1 atau lainnya wilayah yang didukung. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan wilayah tempat hal berikut disimpan:
    • 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 secara unik mengidentifikasi cluster di Google Cloud.

  • VERSION: Versi Google Distributed Cloud untuk cluster pengguna.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika Anda tidak menyertakan flag --admin-users, sebagai pembuat cluster, secara default, Anda diberi hak istimewa admin cluster. Tapi jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda mengganti setelan default dan harus mencantumkan alamat email dan 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 Kubernetes kebijakan role-based access control (RBAC) ke cluster untuk memberi Anda dan peran clusterrole/cluster-admin Kubernetes kepada pengguna admin lain, 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 atribut 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 pilihan Anda untuk kolam renang.

  • avoid-buggy-ips: Jika Anda menetapkannya ke True, pengontrol MetalLB tidak akan menetapkan alamat IP yang diakhiri dengan .0 atau .255 ke Layanan. Ini menghindari masalah perangkat konsumen yang memiliki bug dan tidak sengaja terjatuh lalu lintas yang dikirim ke alamat IP khusus tersebut. Jika tidak ditentukan, nilai defaultnya adalah False.

  • manual-assign: Jika Anda tidak ingin pengontrol MetalLB otomatis menetapkan alamat IP dari kumpulan ini ke Layanan, setel ini untuk True. Kemudian pengembang dapat membuat {i>Service<i} jenis LoadBalancer dan tentukan secara manual salah satu alamat dari kolam renang. Jika tidak ditentukan, manual-assign akan ditetapkan ke False.

  • Dalam daftar addresses: Setiap alamat harus berupa rentang dalam CIDR atau format rentang dengan tanda hubung. Untuk menentukan satu alamat IP dalam kumpulan (seperti untuk VIP masuk), gunakan /32 dalam notasi CIDR (misalnya, 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 di 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 kontrol pesawat terbang. Jika Anda perlu menjalankan load balancer pada kumpulan node pekerja, tentukan flag ini untuk setiap node. Semua node dalam beban kumpulan node balancer harus berada dalam subnet Lapisan 2 yang sama dengan beban IP virtual balancer (VIP).

    Nilai untuk tanda 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 ini memiliki segmen yang dimulai dengan kata kunci node-ip dan labels. Pisahkan setiap segmen dengan koma.

    • node-ip: Alamat IP node di node load balancer kolam renang. Anda hanya dapat menentukan satu node-ip per tanda. Jika Anda memerlukan untuk menentukan lebih dari satu {i>node<i}, sertakan kembali tanda untuk setiap {i>node<i} {i>node<i}.

    • labels: Satu atau beberapa key-value pair yang dilampirkan ke node.

    Perhatikan aturan sintaksis berikut:

    • Mengapit seluruh nilai dalam tanda kutip tunggal.
    • Spasi kosong tidak diizinkan.
    • Pisahkan setiap pasangan nilai kunci di segmen labels dengan tanda titik koma.

    Jika menentukan --metal-lb-load-balancer-node-configs, Anda dapat secara opsional menyertakan tanda berikut:

    • --metal-lb-load-balancer-node-labels: Gunakan tanda ini untuk ditambahkan label ke semua node dalam kumpulan node load balancer. Pisahkan daftar pasangan nilai kunci dengan koma.

      --metal-lb-load-balancer-node-labels=KEY_1=VALUE_1,KEY_2=VALUE_2
      
    • --metal-lb-load-balancer-node-taints: Gunakan tanda ini untuk ditambahkan taint ke semua node di kumpulan node load balancer. Setiap taint adalah key=value pair yang terkait dengan efek, yang harus merupakan salah satu berikut: PreferNoSchedule, NoSchedule, atau NoExecute.

      --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 load balancer kolam renang. Semua {i>node<i} diberi label dengan lb-pool-key=lb-pool-value dan memiliki taint dedicated=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 dari simpul bidang kontrol. Node bidang kontrol menjalankan mengurangi beban kerja sistem. Tentukan tanda ini untuk setiap node bidang kontrol. Biasanya, Anda memiliki satu komputer jika menggunakan deployment minimum, atau tiga mesin jika menggunakan deployment ketersediaan tinggi (HA). Tentukan node dalam jumlah ganjil untuk memiliki kuorum mayoritas untuk HA. Anda dapat mengubah alamat ini setiap kali Anda mengupdate atau mengupgrade cluster.

    Nilai untuk tanda memiliki format berikut:

      'node-ip=CP_IP_ADDRESS_1,labels=CP_KEY_1.1=CP_VALUE_1.1;CP_KEY_1.2=CP_VALUE_1.2;...' \

    Nilai ini memiliki segmen yang dimulai dengan kata kunci node-ip dan labels. Pisahkan setiap segmen dengan koma.

  • node-ip: Alamat IP node bidang kontrol. Anda dapat menentukan hanya satu node-ip per tanda. Jika Anda perlu menentukan lebih dari satu , sertakan kembali flag untuk setiap node.
  • labels: Satu atau beberapa key-value pair 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 labels dengan titik koma.

    Secara opsional, sertakan tanda berikut:

  • --control-plane-node-labels: Gunakan tanda 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 tanda ini untuk menambahkan taint ke semua node bidang kontrol. Setiap taint adalah pasangan nilai kunci yang terkait dengan efek, yang harus berupa salah satu dari hal berikut: PreferNoSchedule, NoSchedule, atau NoExecute.

    Contoh berikut menambahkan tiga node ke node bidang kontrol. Semua node diberi label cp-node-pool-key=cp-node-pool-value dan memiliki dedicated=experimental:PreferNoSchedule taint.

      --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 Anda miliki dipilih untuk dikonfigurasi pada load balancer untuk server Kubernetes API dari cluster pengguna.

    Contoh: --control-plane-vip=203.0.113.3

  • CONTROL_PLANE_LB_PORT: Port tempat beban mengaktifkan server Kubernetes API.

    Contoh: -control-plane-load-balancer-port=443

  • INGRESS_VIP: Alamat IP yang telah Anda pilih lakukan konfigurasi di load balancer untuk proxy masuknya.

    Contoh: --ingress-vip=10.251.134.80

    Alamat IP untuk VIP masuk harus berada dalam salah satu MetalLB pada kumpulan alamat IP.

Layanan dan CIDR Pod

  • SERVICE_CIDR_BLOCK: Rentang alamat IP, dalam CIDR , yang akan digunakan untuk Layanan di cluster Anda. Rentang CIDR harus antara /24 dan /12, di mana /12 adalah yang paling banyak memberikan alamat IP.

    Contoh: --island-mode-service-address-cidr-blocks=10.96.0.0/20

  • POD_CIDR_BLOCK: Rentang alamat IP, dalam CIDR , yang akan digunakan untuk Pod di cluster Anda. Rentang CIDR harus antara /18 dan /8, di mana /8 memberikan alamat IP paling banyak.

    Contoh: --island-mode-pod-address-cidr-blocks=192.168.0.0/16

Penyimpanan

  1. --lvp-share-path: Ini adalah jalur mesin host tempat subdirektori dapat dibuat. PersistentVolume (PV) lokal dibuat untuk setiap subdirektori.
  2. --lvp-share-storage-class: Ini adalah StorageClass yang akan digunakan untuk membuat volume persisten. StorageClass dibuat selama pembuatan cluster.
  3. --lvp-node-mounts-config-path: Ini adalah jalur mesin host tempat pemasangan {i>disk<i} dapat ditemukan. PersistentVolume (PV) lokal dibuat untuk setiap pemasangan.
  4. --lvp-node-mounts-config-storage: Kelas penyimpanan yang dibuat PV selama pembuatan cluster.

Untuk informasi selengkapnya tentang penyimpanan, lihat Mengonfigurasi penyimpanan lokal.

Manual

Dengan load balancing manual, Anda mengonfigurasi load balancing Anda sendiri solusi untuk bidang kontrol dan lalu lintas bidang data. Anda harus mengonfigurasi VIP bidang kontrol di load balancer eksternal sebelum membuat . Load balancer bidang kontrol eksternal juga dapat digunakan untuk traffic bidang data, atau menyiapkan load balancer terpisah untuk bidang data. Untuk informasi selengkapnya, lihat Mengonfigurasi load balancing manual.

Pastikan untuk men-scroll jika diperlukan untuk 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=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 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 yang Anda tempat cluster akan dibuat. Proyek yang ditentukan juga digunakan sebagai project host fleet Anda. Project ini harus sama dengan project cluster admin terdaftar. Setelah dibuat, cluster pengguna akan otomatis terdaftar ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat.
  • ADMIN_CLUSTER_NAME: Nama cluster admin yang mengelola cluster pengguna. Di --admin-cluster-membership , Anda dapat menggunakan nama cluster yang sepenuhnya ditentukan, 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 dalam contoh perintah. Jika Anda hanya menggunakan nama cluster admin, setel project ID cluster admin dengan --admin-cluster-membership-project dan lokasi dengan --admin-cluster-membership-location. Cluster admin lokasinya adalah global atau region Google Cloud. Jika Anda perlu menemukan region, jalankan gcloud 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). Tentukan us-west1 atau lainnya wilayah yang didukung. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan wilayah tempat hal berikut disimpan:
    • 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 secara unik mengidentifikasi cluster di Google Cloud.

  • VERSION: Versi Google Distributed Cloud untuk cluster pengguna.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika Anda tidak menyertakan flag --admin-users, sebagai pembuat cluster, secara default, Anda diberi hak istimewa admin cluster. Tapi jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda mengganti setelan default dan harus mencantumkan alamat email dan 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 Kubernetes kebijakan role-based access control (RBAC) ke cluster untuk memberi Anda dan peran clusterrole/cluster-admin Kubernetes kepada pengguna admin lain, yang memberikan akses penuh ke setiap resource di cluster di semua namespace.

Node bidang kontrol

  • --control-plane-node-configs: Alamat IPv4 dari simpul bidang kontrol. Node bidang kontrol menjalankan mengurangi beban kerja sistem. Tentukan tanda ini untuk setiap node bidang kontrol. Biasanya, Anda memiliki satu komputer jika menggunakan deployment minimum, atau tiga mesin jika menggunakan deployment ketersediaan tinggi (HA). Tentukan node dalam jumlah ganjil untuk memiliki kuorum mayoritas untuk HA. Anda dapat mengubah alamat ini setiap kali Anda mengupdate atau mengupgrade cluster.

    Nilai untuk tanda memiliki format berikut:

      'node-ip=CP_IP_ADDRESS_1,labels=CP_KEY_1.1=CP_VALUE_1.1;CP_KEY_1.2=CP_VALUE_1.2;...' \

    Nilai ini memiliki segmen yang dimulai dengan kata kunci node-ip dan labels. Pisahkan setiap segmen dengan koma.

  • node-ip: Alamat IP node bidang kontrol. Anda dapat menentukan hanya satu node-ip per tanda. Jika Anda perlu menentukan lebih dari satu , sertakan kembali flag untuk setiap node.
  • labels: Satu atau beberapa key-value pair 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 labels dengan titik koma.

    Secara opsional, sertakan tanda berikut:

  • --control-plane-node-labels: Gunakan tanda 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 tanda ini untuk menambahkan taint ke semua node bidang kontrol. Setiap taint adalah pasangan nilai kunci yang terkait dengan efek, yang harus berupa salah satu dari hal berikut: PreferNoSchedule, NoSchedule, atau NoExecute.

    Contoh berikut menambahkan tiga node ke node bidang kontrol. Semua node diberi label cp-node-pool-key=cp-node-pool-value dan memiliki dedicated=experimental:PreferNoSchedule taint.

      --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 Anda miliki dipilih untuk dikonfigurasi pada load balancer untuk server Kubernetes API dari cluster pengguna.

    Contoh: --control-plane-vip=203.0.113.3

  • CONTROL_PLANE_LB_PORT: Port tempat beban mengaktifkan server Kubernetes API.

    Contoh: -control-plane-load-balancer-port=443

  • INGRESS_VIP: Alamat IP yang telah Anda pilih lakukan konfigurasi di load balancer untuk proxy masuknya.

    Contoh: --ingress-vip=10.251.134.80

    Alamat IP untuk VIP masuk harus berada dalam salah satu MetalLB pada kumpulan alamat IP.

Layanan dan CIDR Pod

  • SERVICE_CIDR_BLOCK: Rentang alamat IP, dalam CIDR , yang akan digunakan untuk Layanan di cluster Anda. Rentang CIDR harus antara /24 dan /12, di mana /12 adalah yang paling banyak memberikan alamat IP.

    Contoh: --island-mode-service-address-cidr-blocks=10.96.0.0/20

  • POD_CIDR_BLOCK: Rentang alamat IP, dalam CIDR , yang akan digunakan untuk Pod di cluster Anda. Rentang CIDR harus antara /18 dan /8, di mana /8 memberikan alamat IP paling banyak.

    Contoh: --island-mode-pod-address-cidr-blocks=192.168.0.0/16

Penyimpanan

  1. --lvp-share-path: Ini adalah jalur mesin host tempat subdirektori dapat dibuat. PersistentVolume (PV) lokal dibuat untuk setiap subdirektori.
  2. --lvp-share-storage-class: Ini adalah StorageClass yang akan digunakan untuk membuat volume persisten. StorageClass dibuat selama pembuatan cluster.
  3. --lvp-node-mounts-config-path: Ini adalah jalur mesin host tempat pemasangan {i>disk<i} dapat ditemukan. PersistentVolume (PV) lokal dibuat untuk setiap pemasangan.
  4. --lvp-node-mounts-config-storage: Kelas penyimpanan yang dibuat PV selama pembuatan cluster.

Untuk informasi selengkapnya tentang penyimpanan, lihat Mengonfigurasi penyimpanan lokal.

Sebelum menjalankan perintah gcloud untuk membuat cluster, Anda mungkin perlu sertakan --validate-only untuk memvalidasi konfigurasi yang Anda tentukan di flag ke perintah gcloud. Setelah siap membuat cluster, menghapus penanda ini dan menjalankan 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 Cluster GKE kami.

Untuk mengetahui daftar lengkap tanda dan deskripsinya, lihat Referensi gcloud CLI.

Membuat node pool

Setelah cluster dibuat, Anda perlu membuat minimal satu kumpulan node sebelum untuk men-deploy workload. Kumpulan node adalah template untuk grup node pekerja yang dibuat di cluster ini. Dengan gcloud CLI, Anda membuat cluster terlebih dahulu, lalu tambahkan satu atau beberapa kumpulan node ke node 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 kolam renang. 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 objek yang baru dibuat cluster pengguna.

  • FLEET_HOST_PROJECT_ID: ID project yang cluster terdaftar.

  • REGION: Region Google Cloud yang Anda yang ditentukan saat Anda membuat cluster.

  • --node-configs: Alamat IPv4 mesin node pekerja. Tentukan tanda ini untuk setiap {i>node<i}. Nilai untuk tanda 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 ini memiliki segmen yang dimulai dengan kata kunci node-ip dan labels. Pisahkan setiap segmen dengan koma.

    • node-ip: Alamat IP node pekerja. Anda dapat menentukan hanya satu node-ip per tanda. Tambahkan penanda ini lagi untuk setiap node di kumpulan node.

    • labels: Satu atau beberapa key-value pair yang dilampirkan ke node.

    Perhatikan aturan sintaksis berikut:

    • Mengapit seluruh nilai dalam tanda kutip tunggal.
    • Spasi kosong tidak diizinkan.
    • Pisahkan setiap pasangan nilai kunci di segmen labels dengan tanda titik koma.

    Secara opsional, Anda dapat menentukan hal berikut:

    • --node-labels=KEY=VALUE,...: J daftar yang dipisahkan koma, Label Kubernetes (key=value pair) yang diterapkan ke setiap node dalam kumpulan.

    • --node-taints=KEY=VALUE:EFFECT,... Daftar yang dipisahkan koma dari taint Kubernetes diterapkan ke setiap node dalam kumpulan. Taint adalah pasangan nilai-kunci yang terkait dengan suatu efek. Taint digunakan dengan toleransi untuk penjadwalan Pod. Tentukan salah satu dari hal berikut untuk EFFECT: NoSchedule, PreferNoSchedule, NoExecute.

Contoh berikut membuat kumpulan node bernama default-pool di user-cluster-, dan menambahkan dua node ke kumpulan node. Semua kedua node diberi label 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 informasi selengkapnya, lihat Referensi gcloud CLI.

Terraform

Sebelum memulai

Versi Google Distributed Cloud yang Anda pilih saat membuat cluster pengguna harus merupakan versi yang didukung oleh cluster admin Anda. Selain itu, versi minor atau patch tidak tersedia di GKE On-Prem API hingga versi 7 hingga 10 hari setelah rilis. Anda dapat menjalankan perintah gcloud untuk mendapatkan daftar versi yang didukung, yang dapat Anda instal di cluster pengguna.

  1. Pastikan untuk mengupdate komponen:

    gcloud components update
    
  2. Mendapatkan nama dan lokasi keanggotaan fleet cluster admin Anda:

    gcloud container fleet memberships list \
      --project=FLEET_HOST_PROJECT_ID
    

    Ganti FLEET_HOST_PROJECT_ID dengan ID project tempat cluster admin didaftarkan.

    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 dijalankan. Admin dan klaster yang dibuat sebelum 1.28 ini dikelola oleh Armada global Menghubungkan layanan. Pada versi 1.28 dan yang lebih baru, Anda dapat menentukan global atau region Google Cloud saat Anda membuat cluster admin. Anda menentukan region di flag --admin-cluster-membership-location pada contoh yang mengikutinya.

  3. 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 yang cluster admin terdaftar.

    • ADMIN_CLUSTER_REGION: Cluster admin region keanggotaan fleet. Layanan ini bersifat global atau Google Cloud teritorial Anda. Menggunakan lokasi untuk cluster admin dari output dari gcloud container fleet memberships list.

    • REGION: Region Google Cloud yang Anda akan digunakan saat Anda membuat cluster. Ini adalah region tempat GKE On-Prem API serta menjalankan layanan Fleet dan Connect. Menentukan us-west1 atau lainnya 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 versi terbaru perbaikan dan peningkatan kualitas.

Contoh

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.

Tetapkan variabel di terraform.tfvars

Contoh ini memberikan contoh file variabel untuk diteruskan ke main.tf, yang menunjukkan cara mengonfigurasi paket load balancer MetalLB.

  1. Clone repositori anthos-samples dan ubah ke direktori lokasi sampel Terraform:

    git clone https://github.com/GoogleCloudPlatform/anthos-samples
    cd anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallb
    

    Contoh ini memberikan contoh file variabel untuk diteruskan ke main.tf.

  2. Buat salinan file terraform.tfvars.sample:

    cp terraform.tfvars.sample terraform.tfvars
    
  3. Ubah nilai parameter di terraform.tfvars dan simpan file tersebut.

    
    project_id          = "PROJECT_ID"
    region              = "ON_PREM_API_REGION"
    admin_cluster_name  = "ADMIN_CLUSTER_NAME"
    bare_metal_version  = "VERSION"
    admin_user_emails   = ["YOUR_EMAIL_ADDRESS", "ADMIN_2_EMAIL_ADDRESS"]
    cluster_name        = "abm-user-cluster-metallb"
    control_plane_ips   = ["10.200.0.4"]
    worker_node_ips     = ["10.200.0.5", "10.200.0.6"]
    control_plane_vip   = "10.200.0.50"
    ingress_vip         = "10.200.0.51"
    lb_address_pools    = [
        { name = "lbpool_1", addresses = ["10.200.0.51-10.200.0.70"] }
    ]
    

    Daftar berikut menjelaskan variabel:

    • project_id: ID project yang Anda inginkan untuk membuat cluster inc. Project yang ditentukan juga digunakan sebagai project host fleet. Ini harus berupa project yang sama dengan yang didaftarkan cluster admin. Sesudah dibuat, cluster pengguna akan secara 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 armada (gkehub.googleapis.com), dan layanan Connect (gkeconnect.googleapis.com) akan berjalan. Menentukan us-west1 atau lainnya wilayah yang didukung.

    • admin_cluster_name: Nama cluster admin yang mengelola pengguna . Contoh ini mengasumsikan bahwa cluster admin menggunakan global sebagai teritorial Anda. Jika Anda memiliki cluster admin regional:

      1. Buka main.tf di editor teks.

      2. Telusuri admin_cluster_membership, yang terlihat seperti berikut ini:

        admin_cluster_membership = "projects/${var.project_id}/locations/global/memberships/${var.admin_cluster_name}"
      3. Ubah global ke region yang digunakan oleh cluster admin lalu simpan file tersebut.

    • bare_metal_version: Versi Google Distributed Cloud untuk pengguna Anda . Tentukan versi yang sama dengan cluster admin, atau versi yang tidak lebih dari satu versi minor lebih rendah dari admin .

    • admin_user_emails: Daftar alamat email pengguna yang akan diberikan hak istimewa administratif di cluster. Pastikan untuk menambahkan email jika ingin mengelola cluster tersebut.

      Saat cluster dibuat, GKE On-Prem API menerapkan Kubernetes kebijakan role-based access control (RBAC) ke cluster untuk memberikan peran clusterrole/cluster-admin Kubernetes kepada pengguna admin, memberikan akses penuh ke setiap resource di cluster di semua namespace. Hal ini juga memungkinkan pengguna masuk ke konsol menggunakan Identitas Google.

    • 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
    • control_plane_ips: Daftar satu atau beberapa alamat IPv4 untuk kontrol node bidang. Node bidang kontrol menjalankan beban kerja sistem. Biasanya, Anda memiliki satu komputer jika menggunakan implementasi minimum, atau tiga komputer jika menggunakan deployment ketersediaan tinggi (HA). Tentukan jumlah node yang ganjil agar memiliki kuorum mayoritas untuk HA. Anda dapat mengubah alamat ini kapan saja untuk mengupdate atau mengupgrade cluster.

    • worker_node_ips: Daftar satu atau beberapa alamat IPv4 untuk pekerja mesin node.

    • control_plane_vip: Alamat IP virtual (VIP) yang telah Anda pilih melakukan konfigurasi pada load balancer untuk server Kubernetes API pengguna .

    • ingress_vip: Alamat IP yang telah Anda pilih untuk dikonfigurasi di untuk proxy masuknya (load balancer).

    • lb_address_pools: Daftar peta yang menentukan kumpulan alamat yang akan yang digunakan oleh load balancer MetalLB. VIP masuk harus berada dalam salah satu Google Cloud.

  4. Simpan perubahan di terraform.tfvars.

  5. Lakukan inisialisasi dan buat paket Terraform:

    terraform init
    

    Terraform menginstal semua library yang diperlukan, seperti penyedia Google Cloud.

  6. Tinjau konfigurasi dan buat perubahan jika diperlukan:

    terraform plan
    
  7. Terapkan rencana 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 Cluster GKE kami.

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 Google Cloud Identity Anda. Saat Anda membuat cluster pengguna dengan gcloud CLI, secara default Anda diberi kebijakan RBAC ini jika Anda tidak menyertakan tanda --admin-users. Jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda dapat mengganti dan Anda harus mencantumkan alamat email dan alamat email administrator lainnya. Untuk informasi selengkapnya tentang kebijakan IAM dan RBAC yang diperlukan, lihat Menyiapkan autentikasi identitas Google.

Semua cluster memiliki endpoint kanonis. Endpoint mengekspos Kubernetes API server yang digunakan kubectl dan layanan lainnya untuk berkomunikasi dengan cluster Anda pada bidang kontrol melalui porta TCP 443. Endpoint ini tidak dapat diakses di publik di Internet. 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 Hubungkan 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 memiliki Google Cloud CLI yang terinstal di dalamnya. Dalam hal ini, kubectl menggunakan Connect kubeconfig gateway, yang meneruskan traffic ke gateway pribadi endpoint atas nama Anda.

  • Untuk akses langsung ke endpoint pribadi, buat file kubeconfig di admin dan mengelola cluster dari workstation admin Anda.

Pastikan untuk menunggu hingga Konsol Google Cloud menunjukkan cluster pengguna statusnya baik.

Hubungkan gateway

  1. Lakukan inisialisasi gcloud CLI untuk digunakan dengan project host fleet, atau menjalankan perintah berikut untuk login dengan Akun Google Anda, setel perangkat Anda project host sebagai default, dan mengupdate komponen:

    gcloud auth login
    gcloud config set project PROJECT_ID
    gcloud components update
    
  2. Ambil kredensial cluster yang digunakan untuk berinteraksi dengan gateway Connect. Di beberapa perintah berikut, ganti MEMBERSHIP_NAME dengan nama cluster Anda. Di Google Distributed Cloud, nama keanggotaan sama dengan nama cluster.

    gcloud container fleet memberships get-credentials MEMBERSHIP_NAME
    

    Perintah ini menampilkan Connect gateway-specific kubeconfig khusus yang memungkinkan Anda terhubung ke cluster melalui gateway.

Setelah memiliki kredensial yang diperlukan, Anda dapat menjalankan perintah menggunakan kubectl seperti yang biasa Anda lakukan untuk cluster Kubernetes, dan Anda tidak perlu untuk 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 cluster admin kubeconfig .

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.

Langkah selanjutnya