Di GKE di Bare Metal, cluster hybrid melakukan peran ganda sebagai cluster admin dan cluster pengguna. Keduanya menjalankan workload, dan pada saat yang sama, mengelola cluster lain dan mengelola cluster itu sendiri.
Dengan cluster hybrid, Anda tidak perlu menjalankan cluster admin terpisah dalam skenario yang dibatasi resource, dan dapat memberikan keandalan yang sangat tersedia (HA). Dalam cluster hybrid dengan ketersediaan tinggi (HA), jika satu node gagal, node lain akan menggantikannya.
Cluster hybrid berbeda dari cluster mandiri karena juga dapat mengelola cluster lainnya. Cluster mandiri tidak dapat membuat atau mengelola cluster lain.
Namun, saat Anda membuat cluster hybrid, ada beberapa konsekuensi antara fleksibilitas dan keamanan. Karena cluster hybrid dapat mengelola dirinya sendiri, menjalankan workload di cluster yang sama akan meningkatkan risiko eksposur keamanan terhadap data administratif yang sensitif, seperti kunci SSH.
Anda membuat cluster hybrid dengan bidang kontrol ketersediaan tinggi (HA) menggunakan
perintah bmctl
. Perintah bmctl
dapat dijalankan di workstation terpisah atau di salah
satu node cluster hybrid.
Prasyarat
bmctl
terbaru didownload (gs://anthos-baremetal-release/bmctl/1.15.11/linux-amd64/bmctl
) dari Cloud Storage.- Workstation yang menjalankan
bmctl
memiliki konektivitas jaringan ke semua node di cluster hybrid target. - Workstation yang menjalankan
bmctl
memiliki konektivitas jaringan ke VIP bidang kontrol cluster hybrid target. - Kunci SSH yang digunakan untuk membuat cluster hybrid tersedia untuk root, atau ada akses pengguna SUDO pada semua node dalam cluster hybrid target.
- Akun layanan Connect-register dikonfigurasi untuk digunakan dengan Connect.
Lihat panduan memulai GKE on Bare Metal untuk mengetahui petunjuk langkah demi langkah yang diperluas tentang cara membuat cluster hybrid.
Aktifkan SELinux
Jika ingin mengaktifkan SELinux untuk mengamankan penampung, Anda harus memastikan bahwa SELinux diaktifkan dalam mode Enforced
di semua mesin host. Mulai
GKE pada rilis Bare Metal 1.9.0 atau yang lebih baru, Anda dapat mengaktifkan atau menonaktifkan SELinux
sebelum atau setelah pembuatan cluster atau upgrade cluster. SELinux diaktifkan secara default di Red Hat Enterprise Linux (RHEL) dan CentOS. Jika SELinux dinonaktifkan di
mesin host atau Anda tidak yakin, lihat
Mengamankan container menggunakan SELinux
untuk mengetahui petunjuk cara mengaktifkannya.
GKE di Bare Metal mendukung SELinux hanya di sistem RHEL dan CentOS.
Login ke gcloud dan buat file konfigurasi cluster hybrid
- Login ke gcloud sebagai pengguna menggunakan login
gcloud auth application-default
: - Service Account Admin
- Service Account Key Admin
- Project IAM Admin
- Compute Viewer
- Service Usage Admin
- Dapatkan project ID Cloud Anda untuk digunakan dengan pembuatan cluster:
gcloud auth application-default loginAnda harus memiliki peran Project Owner/Editor untuk menggunakan fitur pengaktifan API dan pembuatan Akun Layanan otomatis, yang dijelaskan di bawah. Anda juga dapat menambahkan peran IAM berikut kepada pengguna:
export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILEJSON_KEY_FILE menentukan jalur ke file kunci JSON akun layanan Anda.
export CLOUD_PROJECT_ID=$(gcloud config get-value project)
Buat cluster hybrid dengan bmctl
Setelah login ke gcloud dan menyiapkan project, Anda dapat membuat file konfigurasi cluster dengan perintah bmctl
. Perhatikan bahwa dalam contoh ini, semua akun layanan otomatis dibuat oleh perintah bmctl create config
:
bmctl create config -c HYBRID_CLUSTER_NAME --enable-apis \ --create-service-accounts --project-id=CLOUD_PROJECT_ID
Berikut adalah contoh untuk membuat file konfigurasi untuk cluster hybrid bernama hybrid1
yang terkait dengan project ID my-gcp-project
:
bmctl create config -c hybrid1 --create-service-accounts --project-id=my-gcp-project
File ditulis ke bmctl-workspace/hybrid1/hybrid1.yaml
.
Selain mengaktifkan API secara otomatis dan membuat akun layanan, Anda juga dapat memberikan izin IAM yang tepat untuk akun layanan yang ada. Ini berarti Anda dapat melewati pembuatan akun layanan
otomatis pada langkah sebelumnya dalam perintah bmctl
:
bmctl create config -c hybrid1
Mengedit file konfigurasi cluster
Setelah Anda memiliki file konfigurasi cluster, edit file tersebut untuk melakukan 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 dalam perintah
bmctl create config
otomatis ditambahkan ke kolomgkeConnect.projectID
di file konfigurasi cluster. Project ini disebut sebagai project host armada.- Jika membuat file konfigurasi menggunakan fitur pengaktifan API otomatis dan pembuatan Akun Layanan, Anda dapat melewati langkah ini.
- Jika Anda membuat file konfigurasi tanpa menggunakan fitur pengaktifan API
dan pembuatan Akun Layanan otomatis, referensikan kunci JSON
akun layanan yang didownload di kolom
gkeConnectAgentServiceAccountKeyPath
dangkeConnectRegisterServiceAccountKeyPath
yang sesuai dari 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 dengan beberapa node. Anda ingin menentukan jumlah node ganjil agar dapat memiliki kuorum mayoritas 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 hybrid, nilai yang diizinkan untuk
maxPodsPerNode
adalah32-250
untuk cluster dengan ketersediaan tinggi (HA) dan64-250
untuk cluster non-HA. Nilai default untukmaxPodsPerNode
jika tidak ditentukan adalah110
. Setelah cluster dibuat, nilai ini tidak dapat diperbarui.Kepadatan pod juga dibatasi oleh resource IP cluster yang tersedia. Untuk mengetahui detailnya, lihat Jejaring pod.
Membuat cluster hybrid dengan konfigurasi cluster
Gunakan perintah bmctl
untuk men-deploy cluster:
bmctl create cluster -c CLUSTER_NAME
CLUSTER_NAME menentukan nama cluster yang Anda buat di bagian sebelumnya.
Berikut ini contoh perintah untuk membuat file konfigurasi bagi cluster yang disebut hybrid1
:
bmctl create cluster -c hybrid1
Contoh konfigurasi cluster hybrid
Untuk mengetahui contoh konfigurasi cluster hybrid, lihat Cluster hybrid di contoh konfigurasi Cluster.