Halaman ini menunjukkan cara membuat cluster mandiri, yang merupakan cluster yang menjalankan workload. Cluster mandiri tidak mengelola cluster lain, menghilangkan kebutuhan untuk menjalankan cluster admin terpisah di resource- skenario terbatas. Selain itu, cluster mandiri menawarkan dua instalasi profil yang dapat dipilih:
- Default: Profil default memiliki persyaratan resource yang terbatas.
- Edge: Profil edge telah mengurangi resource sistem secara signifikan dan direkomendasikan untuk perangkat edge dengan resource batasan data.
Sebelum membuat klaster mandiri, pertimbangkan penyeimbangan antara pengurangan sumber daya dan keamanan secara keseluruhan. Karena cluster mandiri mengelola dirinya sendiri, menjalankan workload di cluster yang sama meningkatkan risiko paparan data administratif, seperti kunci SSH.
Prasyarat
Sebelum membuat cluster mandiri, pastikan hal berikut:
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 mandiri. - Workstation yang menjalankan
bmctl
memiliki konektivitas jaringan ke bidang kontrol VIP dari cluster mandiri target. - Kunci SSH yang digunakan untuk membuat cluster mandiri tersedia untuk root, atau di sana adalah akses pengguna SUDO pada semua node dalam cluster mandiri target.
- Akun layanan Connect-register dikonfigurasi untuk digunakan dengan Connect.
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.
Membuat cluster mandiri
Anda dapat membuat cluster mandiri yang memiliki satu bidang node kontrol menggunakan
menggunakan perintah bmctl
. Jenis konfigurasi ini mengurangi
konsumsi sumber daya tetapi
menyediakan ketersediaan tinggi (HA), dan cluster yang dihasilkan memiliki satu
titik kegagalannya.
Anda juga dapat membuat cluster mandiri HA. Dalam mode HA, jika sebuah node gagal, yang lain akan menggantikannya. Untuk membuat cluster mandiri HA, Anda harus menentukan setidaknya tiga {i>node<i} 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 diaktifkan dan memiliki resource minimum yang diperlukan
dikonfigurasi, 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 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 ke JSON akun layanan Anda kunci.
Dapatkan project ID Google Cloud Anda untuk digunakan saat membuat cluster:
export CLOUD_PROJECT_ID=$(gcloud config get-value project)
Membuat file konfigurasi cluster mandiri
Setelah login ke gcloud CLI dan menyiapkan project, Anda dapat membuat
file konfigurasi cluster dengan perintah bmctl
. Dalam contoh ini, semua layanan
akun dibuat secara otomatis 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
bernama 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
.
Sebagai alternatif untuk mengaktifkan API secara otomatis dan membuat akun layanan,
Anda juga dapat memberikan akun layanan yang ada jika Anda memiliki
izin IAM yang tepat.
Dengan cara ini, Anda dapat melewati pembuatan akun layanan otomatis pada langkah sebelumnya
langkah 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 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 menggunakan 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 konfigurasi cluster .
Ubah konfigurasi untuk menentukan jenis cluster
standalone
, bukanadmin
. Jika Anda ingin mengaktifkan profil edge untuk meminimalkan resource konsumsi, 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 Google Distributed Cloud. It is only available for standalone clusters. profile: edge
(Opsional) Ubah konfigurasi untuk menentukan multinode, ketersediaan tinggi, bidang kontrol. Tentukan 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
Jika Anda memiliki jumlah node genap untuk sementara saat menambahkan atau menghapus untuk pemeliharaan atau penggantian, deployment Anda mempertahankan HA selama Anda memiliki kuorum.
Di file konfigurasi cluster, isi atau edit jaringan cluster detail:
clusterNetwork.pods.cidrBlocks
: rentang alamat IP dalam blok CIDR notasi untuk digunakan oleh Pod. Nilai awal yang direkomendasikan, yaitu telah diisi sebelumnya dalam file konfigurasi cluster yang dibuat,192.168.0.0/16
.clusterNetwork.services.cidrBlocks
: rentang alamat IP dalam CIDR notasi blok untuk digunakan oleh Layanan. Nilai awal yang direkomendasikan, telah diisi sebelumnya dalam file konfigurasi cluster yang dibuat,10.96.0.0/20
.loadBalancer.vips.controlPlaneVIP
: alamat IP virtual (VIP) untuk server Kubernetes API cluster.loadBalancer.vips.ingressVIP
: alamat VIP yang akan digunakan sebagai alamat eksternal alamat masuknya proxy.loadBalancer.addressPools.addresses:
: rentang sepuluh alamat IP untuk digunakan sebagai alamat IP eksternal untuk Layanan jenis LoadBalancer. Pemberitahuan rentang ini mencakup VIP masuk, yang diwajibkan oleh MetalLB. Tidak ada alamat IP lain yang dapat tumpang-tindih dengan rentang ini.
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 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 Anda yang tersedia. Untuk mengetahui detailnya, lihat Jaringan 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 adalah contoh perintah untuk membuat cluster
disebut standalone1
:
bmctl create cluster -c standalone1
Contoh konfigurasi cluster mandiri
Untuk contoh konfigurasi cluster mandiri, lihat Cluster mandiri di Contoh konfigurasi cluster.