Cluster admin memungkinkan Anda membuat, mengupdate, mengupgrade, dan menghapus cluster pengguna. Memisahkan administrasi cluster dari workload pengguna membantu melindungi data sensitif, seperti kunci SSH dan kredensial akun layanan, dengan konsekuensi memerlukan resource khusus untuk pengelolaan.
Dalam konfigurasi ketersediaan tinggi (HA), cluster admin menyediakan node bidang kontrol redundan sehingga operasi pengelolaan terus berlanjut jika satu node gagal.
Anda membuat cluster admin menggunakan perintah bmctl. Setelah pembuatan cluster, Anda men-deploy cluster pengguna untuk menjalankan workload.
Prasyarat
bmctlterbaru didownload (gs://anthos-baremetal-release/bmctl/1.36.100-gke.144/linux-amd64/bmctl) dari Cloud Storage.- Workstation yang menjalankan
bmctlmemiliki konektivitas jaringan ke semua node di cluster pengguna target. - Workstation yang menjalankan
bmctlmemiliki konektivitas jaringan ke server API cluster (VIP bidang kontrol). - Kunci SSH yang digunakan untuk membuat cluster Admin tersedia untuk
rootatau pengguna non-root dengan hak istimewasudotanpa sandi di semua node dalam cluster admin target. - Akun layanan connect-register dikonfigurasi untuk digunakan dengan Connect.
Lihat panduan memulai Google Distributed Cloud untuk mengetahui petunjuk langkah demi langkah yang diperluas dalam membuat cluster hybrid. Membuat cluster admin mirip dengan membuat cluster hybrid, hanya saja Anda tidak menjalankan workload di cluster admin.
Mengaktifkan SELinux
Jika ingin mengaktifkan SELinux untuk mengamankan container, Anda harus memastikan bahwa
SELinux diaktifkan dalam mode Enforced di semua mesin host. Mulai dari
Google Distributed Cloud rilis 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). Jika SELinux dinonaktifkan di
mesin host atau Anda tidak yakin, lihat
Mengamankan container menggunakan SELinux
untuk mengetahui petunjuk cara mengaktifkannya.
Google Distributed Cloud hanya mendukung SELinux di sistem RHEL.
Login ke gcloud CLI dan buat file konfigurasi cluster admin
Tetapkan kredensial default yang dapat digunakan Google Distributed Cloud untuk membuat cluster dengan perintah berikut:
gcloud auth application-default loginUntuk menggunakan fitur pengaktifan API dan pembuatan akun layanan otomatis di halaman ini, berikan peran Project Owner ke akun utama tersebut. Jika akun utama tidak dapat memiliki peran Project Owner, selesaikan langkah berikutnya.
Untuk memastikan pembuatan cluster dapat berhasil tanpa memberikan peran Project Owner, tambahkan peran IAM berikut ke akun utama:
- Service Account Admin
- Service Account Key Admin
- Project IAM Admin
- Compute Viewer
- Service Usage Admin
Jika akun utama adalah akun layanan dengan peran tersebut, Anda dapat menjalankan:
export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILEGanti
JSON_KEY_FILEdengan jalur ke file kunci JSON akun layanan Anda.Dapatkan ID project Google Cloud Anda dan simpan dalam variabel lingkungan untuk digunakan dalam pembuatan cluster:
export CLOUD_PROJECT_ID=$(gcloud config get-value project)
Membuat konfigurasi cluster admin dengan bmctl
Setelah login ke gcloud CLI dan menyiapkan project, Anda dapat membuat file konfigurasi cluster dengan perintah bmctl.
Dalam contoh berikut, semua akun layanan dibuat secara otomatis oleh
perintah bmctl create config:
bmctl create config -c ADMIN_CLUSTER_NAME --enable-apis \
--create-service-accounts --project-id=CLOUD_PROJECT_ID
Ganti kode berikut:
- ADMIN_CLUSTER_NAME: nama cluster baru.
- CLOUD_PROJECT_ID: project ID Google Cloud Anda atau variabel lingkungan
$CLOUD_PROJECT_ID.
Berikut adalah contoh untuk membuat file konfigurasi untuk cluster admin bernama admin1 yang terkait dengan project ID my-gcp-project:
bmctl create config -c admin1 --create-service-accounts --enable-apis --project-id=my-gcp-project
File ditulis ke bmctl-workspace/admin1/admin1.yaml.
Sebagai alternatif untuk mengaktifkan API dan membuat akun layanan secara otomatis,
Anda juga dapat memberikan izin IAM yang tepat ke akun layanan yang ada. Artinya, Anda dapat melewati pembuatan akun layanan otomatis
pada contoh sebelumnya dalam perintah bmctl:
bmctl create config -c admin1 --project-id=my-gcp-project
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 admin:
# 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/admin 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.jsonDaftarkan cluster Anda ke fleet. Project ID yang Anda tentukan dalam perintah
bmctl create configakan otomatis ditambahkan ke kolomgkeConnect.projectIDdalam file konfigurasi cluster. Project ini disebut sebagai project host fleet.Jika Anda 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 otomatis dan pembuatan Akun Layanan, referensikan kunci JSON akun layanan yang didownload di kolom
gkeConnectAgentServiceAccountKeyPathdangkeConnectRegisterServiceAccountKeyPathyang sesuai pada file konfigurasi cluster.Secara opsional, Anda dapat menambahkan
gkeConnect.locationke spesifikasi cluster untuk menentukan region Google Cloud tempat Fleet dan layanan Connect berjalan. Keanggotaan regional ini membatasi traffic layanan fleet ke region Anda. Jika Anda menyertakangkeConnect.locationdalam spesifikasi cluster, region yang Anda tentukan harus sama dengan region yang dikonfigurasi diclusterOperations.location. Jika region tidak sama, pembuatan cluster akan gagal.
Periksa untuk memastikan konfigurasi menentukan jenis cluster
admin(nilai default):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: adminJika GKE On-Prem API diaktifkan di projectGoogle Cloud Anda, semua cluster dalam project tersebut akan terdaftar di GKE On-Prem API secara otomatis di region yang dikonfigurasi di
clusterOperations.location.Jika Anda ingin mendaftarkan semua cluster dalam project di GKE On-Prem API, pastikan untuk melakukan langkah-langkah di bagian Sebelum memulai untuk mengaktifkan dan menggunakan GKE On-Prem API dalam project.
Jika Anda tidak ingin mendaftarkan cluster di GKE On-Prem API, sertakan bagian ini dan tetapkan
gkeOnPremAPI.enabledkefalse. Jika Anda tidak ingin mendaftarkan cluster apa pun dalam project, nonaktifkangkeonprem.googleapis.com(nama layanan untuk GKE On-Prem API) dalam project. Untuk mengetahui petunjuknya, lihat Menonaktifkan layanan.
Ubah file konfigurasi untuk menentukan bidang kontrol multi-node dengan ketersediaan tinggi. Tentukan jumlah node ganjil agar 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.6Tentukan 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 admin, nilai yang diizinkan untuk
maxPodsPerNodeadalah32-250untuk cluster HA dan64-250untuk cluster non-HA. Nilai default jika tidak ditentukan adalah110. Setelah cluster dibuat, nilai ini tidak dapat diperbarui.Kepadatan Pod juga dibatasi oleh resource IP yang tersedia di cluster Anda. Untuk mengetahui detailnya, lihat Jaringan Pod dan Service.
Membuat cluster admin dengan konfigurasi cluster
Gunakan perintah bmctl untuk men-deploy cluster:
bmctl create cluster -c ADMIN_CLUSTER_NAME
ADMIN_CLUSTER_NAME menentukan nama cluster yang dibuat di bagian sebelumnya.
Berikut adalah contoh perintah untuk membuat cluster bernama admin1:
bmctl create cluster -c admin1
Contoh konfigurasi cluster admin
Untuk contoh konfigurasi cluster admin, lihat Cluster admin dalam Contoh konfigurasi cluster.