Halaman ini menunjukkan cara membuat cluster mandiri, yang merupakan cluster yang dikelola sendiri dan menjalankan workload. Cluster mandiri tidak mengelola cluster lain, sehingga tidak perlu menjalankan cluster admin terpisah dalam skenario resource yang terbatas. Selain itu, cluster mandiri menawarkan dua profil penginstalan yang dapat dipilih:
- Default: Profil default memiliki persyaratan resource yang terbatas.
- Edge: Profil edge telah mengurangi persyaratan resource sistem secara signifikan dan direkomendasikan untuk perangkat edge dengan batasan resource yang tinggi.
Sebelum membuat cluster mandiri, pertimbangkan konsekuensi antara pengurangan resource dan keamanan keseluruhan. Karena cluster mandiri mengelola dirinya sendiri, menjalankan workload pada cluster yang sama akan meningkatkan risiko eksposur data administratif yang sensitif, seperti kunci SSH.
Prasyarat
Sebelum membuat cluster mandiri, pastikan hal berikut:
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 mandiri target. - Workstation yang menjalankan
bmctl
memiliki konektivitas jaringan ke VIP bidang kontrol VIP cluster mandiri target. - Kunci SSH yang digunakan untuk membuat cluster mandiri tersedia untuk root, atau terdapat akses pengguna SUDO pada semua node dalam cluster mandiri target.
- Akun layanan Connect-register dikonfigurasi untuk digunakan dengan Connect.
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.
Membuat cluster mandiri
Anda dapat membuat cluster mandiri yang memiliki satu bidang node kontrol menggunakan
perintah bmctl
. Jenis konfigurasi ini mengurangi konsumsi resource, tetapi
tidak memberikan ketersediaan tinggi (HA), dan cluster yang dihasilkan memiliki satu
titik kegagalan.
Anda juga dapat membuat cluster mandiri dengan ketersediaan tinggi (HA). Dalam mode HA, jika node gagal, node lain akan menggantikannya. Untuk membuat cluster mandiri dengan ketersediaan tinggi (HA), Anda harus menentukan setidaknya tiga node untuk bidang kontrol.
Perintah bmctl
biasanya dapat dijalankan di workstation terpisah atau di salah satu
node cluster mandiri. Namun, jika Anda membuat cluster mandiri dengan profil edge yang diaktifkan dan telah mengonfigurasi resource minimum yang diperlukan, sebaiknya jalankan bmctl
di workstation terpisah.
Login ke gcloud
Login ke
gcloud
sebagai pengguna:gcloud auth application-default login
Anda harus memiliki peran Project Owner atau Editor untuk menggunakan fitur pengaktifan API otomatis dan pembuatan Akun Layanan yang dijelaskan di bawah.
Anda juga dapat menambahkan peran IAM berikut kepada 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 ke file kunci JSON akun layanan Anda.
Dapatkan ID project Google Cloud Anda untuk digunakan dengan pembuatan cluster:
export CLOUD_PROJECT_ID=$(gcloud config get-value project)
Membuat file konfigurasi cluster mandiri
Setelah login ke gcloud dan menyiapkan project, Anda dapat membuat file konfigurasi cluster dengan perintah bmctl
. Dalam contoh ini, semua akun layanan otomatis dibuat oleh perintah bmctl create config
:
bmctl create config -c STANDALONE_CLUSTER_NAME --enable-apis \
--create-service-accounts --project-id=$CLOUD_PROJECT_ID
Ganti kode berikut:
- STANDALONE_CLUSTER_NAME dengan nama cluster mandiri yang ingin Anda buat.
Contoh
Perintah berikut membuat file konfigurasi untuk cluster mandiri yang disebut standalone1
yang terkait dengan project ID my-gcp-project
:
bmctl create config -c standalone1 --create-service-accounts --project-id=my-gcp-project
File ditulis ke bmctl-workspace/standalone1/standalone1.yaml
.
Selain mengaktifkan API secara otomatis dan membuat akun layanan, Anda juga dapat memberikan akun layanan yang ada jika memiliki izin IAM yang tepat.
Dengan cara ini, Anda dapat melewati pembuatan akun layanan otomatis pada langkah sebelumnya dalam perintah bmctl
:
bmctl create config -c standalone1
Mengedit file konfigurasi cluster
Setelah Anda memiliki file konfigurasi cluster, buat perubahan berikut:
Tambahkan kunci pribadi SSH untuk mengakses node cluster mandiri:
# 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
standalone
, bukanadmin
. Jika ingin mengaktifkan profil tepi untuk meminimalkan konsumsi resource, tentukanprofile: edge
: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: standalone # Edge profile minimizes the resource consumption of GKE on Bare Metal. It is only available for standalone clusters. profile: edge
(Opsional) Ubah konfigurasi untuk menentukan bidang kontrol multinode dengan ketersediaan tinggi. Tentukan 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
Jika Anda memiliki node dalam jumlah genap untuk sementara selagi menambahkan atau menghapus node untuk pemeliharaan atau penggantian, deployment Anda akan mempertahankan HA selama Anda memiliki kuorum.
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 mandiri, nilai yang diizinkan untuk
maxPodsPerNode
adalah32-250
untuk cluster dengan ketersediaan tinggi (HA) dan64-250
untuk cluster non-HA. Nilai default 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 mandiri dengan konfigurasi cluster
Gunakan perintah bmctl
untuk men-deploy cluster mandiri:
bmctl create cluster -c CLUSTER_NAME
Ganti CLUSTER_NAME dengan nama cluster yang Anda buat di bagian sebelumnya.
Berikut ini contoh perintah untuk membuat cluster
yang disebut standalone1
:
bmctl create cluster -c standalone1
Contoh konfigurasi cluster mandiri
Untuk mengetahui contoh konfigurasi cluster mandiri, baca bagian Cluster mandiri dalam contoh konfigurasi Cluster.