Di Google Distributed Cloud, cluster hybrid menjalankan peran ganda sebagai admin dan cluster pengguna. Mereka menjalankan workload, dan pada saat yang sama, mengelola klaster lain, dan diri mereka sendiri.
Cluster hybrid menghilangkan kebutuhan untuk menjalankan cluster admin terpisah di skenario dengan resource yang terbatas, dan dapat memberikan ketersediaan tinggi (HA) keandalan. Dalam cluster hibrida HA, jika satu node gagal, node yang lain akan mengambil di tempatnya.
Cluster hybrid berbeda dari cluster mandiri karena cluster tersebut juga dapat mengelola cluster lainnya. Cluster mandiri tidak dapat membuat atau mengelola cluster lain klaster.
Saat Anda membuat cluster hybrid, ada beberapa kompromi antara fleksibilitas dan keamanan. Karena cluster hybrid mengelola dirinya sendiri, menjalankan workload berdasarkan cluster yang sama meningkatkan risiko eksposur keamanan terhadap data administratif, seperti kunci SSH.
Anda membuat cluster hybrid dengan bidang kontrol ketersediaan tinggi (HA) menggunakan
menggunakan perintah bmctl
. Perintah bmctl
dapat dijalankan di workstation terpisah atau
pada salah satu node cluster hybrid.
Prasyarat
bmctl
terbaru telah didownload (gs://anthos-baremetal-release/bmctl/1.30.0-gke.1930/linux-amd64/bmctl
) dari Cloud Storage.- Workstation yang menjalankan
bmctl
memiliki konektivitas jaringan ke semua node di target cluster hybrid. - Workstation yang menjalankan
bmctl
memiliki konektivitas jaringan ke bidang kontrol VIP cluster hibrid target. - Kunci SSH yang digunakan untuk membuat cluster hibrid tersedia untuk root, atau ada Akses pengguna SUDO pada semua node di cluster hibrid target.
- Akun layanan Connect-register dikonfigurasi untuk digunakan dengan Hubungkan.
Lihat panduan memulai Google Distributed Cloud untuk petunjuk langkah demi langkah yang diperluas untuk membuat cluster hybrid.
Aktifkan SELinux
Jika Anda ingin mengaktifkan SELinux untuk
mengamankan kontainer Anda, Anda harus memastikan
SELinux diaktifkan dalam mode Enforced
di semua mesin host Anda. Dimulai dengan
Google Distributed Cloud rilis 1.9.0 atau yang lebih baru, Anda dapat mengaktifkan atau menonaktifkan SELinux
sebelum atau setelah pembuatan atau upgrade cluster. SELinux diaktifkan oleh
default di Red Hat Enterprise Linux (RHEL). Jika SELinux dinonaktifkan pada
mesin {i>host<i} Anda atau Anda
tidak yakin, lihat
Mengamankan container Anda menggunakan SELinux
untuk mendapatkan petunjuk cara mengaktifkannya.
Google Distributed Cloud mendukung SELinux hanya di sistem RHEL.
Login ke gcloud dan buat file konfigurasi cluster
Login ke gcloud CLI sebagai pengguna menggunakan
gcloud auth application-default login
:gcloud auth application-default login
Anda harus memiliki peran Project Owner atau Editor untuk menggunakan API otomatis pengaktifan akun dan fitur pembuatan Akun Layanan, yang dijelaskan dalam bagian.
Anda juga dapat menambahkan peran IAM berikut ke pengguna:
- Service Account Admin
- Service Account Key Admin
- Project IAM Admin
- Compute Viewer
- Service Usage Admin
Atau, jika Anda sudah memiliki akun layanan dengan peran tersebut, jalankan:
export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILE
Ganti
JSON_KEY_FILE
dengan jalur layanan Anda file kunci JSON akun Anda.Dapatkan project ID Google Cloud Anda untuk digunakan saat membuat cluster:
export CLOUD_PROJECT_ID=$(gcloud config get-value project)
Membuat file konfigurasi cluster dengan bmctl
Setelah login ke gcloud CLI dan menyiapkan project,
Anda dapat membuat file konfigurasi cluster dengan perintah bmctl
.
Untuk membuat file konfigurasi cluster:
Jalankan perintah berikut akan membuat file konfigurasi cluster, membuat semua akun layanan yang diperlukan, dan mengaktifkan semua API yang diperlukan:
bmctl create config -c CLUSTER_NAME</var> --enable-apis \ --create-service-accounts --project-id=CLOUD_PROJECT_ID
Ganti kode berikut:
CLUSTER_NAME
: nama cluster Anda membuat.CLOUD_PROJECT_ID
: ID project Google Cloud Anda.
Secara {i>default<i}, file konfigurasi ditulis ke
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME.yaml
.Jika sudah mengaktifkan API dan membuat akun layanan, Anda dapat membuat file konfigurasi tanpa mengaktifkan API dan membuat akun layanan. Anda juga tidak perlu menggunakan flag
--project-id
. Namun, Anda harus menentukan kredensial di file konfigurasi Anda secara manual.Untuk informasi selengkapnya tentang opsi perintah, lihat buat konfigurasi.
Mengedit file konfigurasi cluster
Setelah memiliki file konfigurasi cluster, edit file tersebut untuk membuat perubahan berikut:
Berikan kunci pribadi SSH untuk mengakses node cluster hybrid:
# bmctl configuration variables. Because this section is valid YAML but not a valid Kubernetes # resource, this section can only be included when using bmctl to # create the initial admin/hybrid cluster. Afterwards, when creating user clusters by directly # applying the cluster and node pool resources to the existing cluster, you must remove this # section. gcrKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-gcr.json sshPrivateKeyPath: /path/to/your/ssh_private_key gkeConnectAgentServiceAccountKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-connect.json gkeConnectRegisterServiceAccountKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-register.json cloudOperationsServiceAccountKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-cloud-ops.json
Daftarkan cluster Anda ke fleet. Project ID yang Anda tentukan di perintah
bmctl create config
akan otomatis ditambahkan ke KolomgkeConnect.projectID
di file konfigurasi cluster. Proyek ini disebut sebagai project host perangkat.- Jika Anda membuat file konfigurasi, gunakan pengaktifan API otomatis dan untuk fitur pembuatan Akun Layanan, Anda dapat melewati langkah ini.
- Jika Anda membuat file konfigurasi tanpa menggunakan pengaktifan API otomatis
dan fitur pembuatan Akun Layanan, merujuk ke layanan yang didownload
kunci JSON akun dalam paket
gkeConnectAgentServiceAccountKeyPath
dangkeConnectRegisterServiceAccountKeyPath
kolom file konfigurasi cluster.
Ubah konfigurasi untuk menentukan jenis cluster
hybrid
, bukanadmin
:spec: # Cluster type. This can be: # 1) admin: to create an admin cluster. This can later be used to create user clusters. # 2) user: to create a user cluster. Requires an existing admin cluster. # 3) hybrid: to create a hybrid cluster that runs admin cluster components and user workloads. # 4) standalone: to create a cluster that manages itself, runs user workloads, but does not manage other clusters. type: hybrid
Ubah konfigurasi untuk menentukan bidang kontrol ketersediaan tinggi multinode. Anda ingin menentukan jumlah ganjil node agar dapat memiliki mayoritas kuorum untuk HA:
# Control plane configuration controlPlane: nodePoolSpec: nodes: # Control plane node pools. Typically, this is either a single machine # or 3 machines if using a high availability deployment. - address: 10.200.0.4 - address: 10.200.0.5 - address: 10.200.0.6
Tentukan kepadatan pod node cluster:
.... # NodeConfig specifies the configuration that applies to all nodes in the cluster. nodeConfig: # podDensity specifies the pod density configuration. podDensity: # maxPodsPerNode specifies at most how many pods can be run on a single node. maxPodsPerNode: 250 ....
Untuk cluster campuran, nilai yang diizinkan untuk
maxPodsPerNode
adalah32-250
untuk Cluster HA dan64-250
untuk cluster non-HA. Nilai default untukmaxPodsPerNode
jika tidak ditentukan adalah110
. Setelah cluster dibuat, nilai tidak dapat diperbarui.Kepadatan pod juga dibatasi oleh resource IP cluster Anda yang tersedia. Untuk mengetahui detailnya, lihat Jaringan pod.
Membuat cluster hybrid dengan konfigurasi cluster
Gunakan perintah bmctl
untuk membuat cluster:
bmctl create cluster -c CLUSTER_NAME
Ganti CLUSTER_NAME
dengan nama yang Anda gunakan saat
membuat file konfigurasi cluster di bagian sebelumnya.
Berikut ini contoh perintah untuk membuat cluster bernama
hybrid1
:
bmctl create cluster -c hybrid1
Contoh konfigurasi cluster hybrid
Untuk contoh konfigurasi cluster hybrid, lihat Cluster hybrid di Contoh konfigurasi cluster.