Cluster pengguna di Google Distributed Cloud memungkinkan Anda menjalankan dan mengisolasi workload dalam arsitektur multi-cluster yang dikelola oleh cluster admin. Menjaga workload agar tidak berada di cluster admin akan melindungi data administratif yang sensitif, seperti kunci SSH yang disimpan, sekaligus memisahkan cluster pengguna satu sama lain, sehingga memberikan keamanan multi-tenant untuk aplikasi Anda.
Untuk men-deploy cluster pengguna, Anda menyesuaikan file konfigurasi cluster untuk menentukan
node pool dan setelan cluster, lalu membuat cluster menggunakan
perintah bmctl.
Prasyarat
bmctlterbaru didownload (gs://anthos-baremetal-release/bmctl/1.36.200-gke.118/linux-amd64/bmctl) dari Cloud Storage.- Cluster admin yang berfungsi dengan akses ke server API cluster (
controlPlaneVIP). - Node cluster admin memiliki konektivitas jaringan ke semua node di cluster pengguna target.
- Workstation yang menjalankan
bmctlmemiliki konektivitas jaringan ke semua node di cluster pengguna target. - Workstation admin dapat membuat koneksi SSH ke setiap node cluster pengguna.
- Akun layanan connect-register dikonfigurasi di cluster admin untuk digunakan dengan Connect.
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 Anda atau Anda tidak yakin, lihat Mengamankan container menggunakan SELinux untuk mengetahui petunjuk cara mengaktifkannya.
Google Distributed Cloud hanya mendukung SELinux di sistem RHEL.
Membuat file konfigurasi cluster pengguna
File konfigurasi untuk membuat cluster pengguna hampir sama persis dengan
yang digunakan untuk membuat cluster admin. Satu-satunya perbedaan adalah Anda menghapus bagian konfigurasi kredensial lokal untuk membuat konfigurasi menjadi kumpulan resource Kubernetes yang valid. Bagian konfigurasi berada di bagian atas
file di bagian bmctl configuration variables. Untuk contoh konfigurasi cluster pengguna, lihat Cluster pengguna di Contoh konfigurasi cluster.
Secara default, cluster pengguna mewarisi kredensialnya dari cluster admin yang mengelolanya. Anda dapat mengganti beberapa atau semua kredensial ini secara selektif.
Buat file konfigurasi cluster pengguna dengan perintah
bmctl create config:bmctl create config -c USER_CLUSTER_NAMEMisalnya, jalankan perintah berikut untuk membuat file konfigurasi bagi cluster pengguna bernama
user1:bmctl create config -c user1File ditulis ke
bmctl-workspace/user1/user1.yaml. Jalur generik ke file adalahbmctl-workspace/CLUSTER NAME/CLUSTER_NAME.yaml.Edit file konfigurasi dengan perubahan berikut:
Hapus jalur file kredensial lokal dari konfigurasi:
...gcrKeyPath: (path to Artifact Registry service account key)sshPrivateKeyPath: (path to SSH private key, used for node access)gkeConnectAgentServiceAccountKeyPath: (path to Connect agent service account key)gkeConnectRegisterServiceAccountKeyPath: (path to Hub registration service account key)cloudOperationsServiceAccountKeyPath: (path to Cloud Operations service account key)...Ubah konfigurasi untuk menentukan jenis cluster
user, 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: user ...Daftarkan cluster Anda ke fleet dengan menentukan project ID Anda di kolom
gkeConnect.projectID. Project ini disebut sebagai project host fleet.... gkeConnect: projectID: my-project-123 ...- 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.
- Secara opsional, Anda dapat menambahkan
Jika 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.
Tentukan alamat IP node bidang kontrol.
... # Sample control plane config controlPlane: nodePoolSpec: nodes: - address: 10.200.0.20 ...Pastikan spesifikasi cluster admin dan pengguna untuk VIP load balancer dan kumpulan alamat saling melengkapi, dan tidak tumpang-tindih dengan cluster yang ada. Contoh berikut menunjukkan contoh pasangan konfigurasi cluster admin dan pengguna, yang menentukan load balancing dan kumpulan alamat:
... # Sample admin cluster config for load balancer and address pools loadBalancer: vips: controlPlaneVIP: 10.200.0.49 ingressVIP: 10.200.0.50 addressPools: - name: pool1 addresses: - 10.200.0.50-10.200.0.70 ... ... # Sample user cluster config for load balancer and address pools loadBalancer: vips: controlPlaneVIP: 10.200.0.71 ingressVIP: 10.200.0.72 addressPools: - name: pool1 addresses: - 10.200.0.72-10.200.0.90 ...File konfigurasi cluster pengguna lainnya sama dengan konfigurasi cluster admin.
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: 110 ...Untuk cluster pengguna, nilai yang diizinkan untuk
maxPodsPerNodeadalah32-250. 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 pengguna
Berikan perintah bmctl untuk menerapkan konfigurasi cluster pengguna dan membuat cluster:
bmctl create cluster -c USER_CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG
Ganti kode berikut:
USER_CLUSTER_NAME: nama cluster yang dibuat di bagian sebelumnya.ADMIN_KUBECONFIG: jalur ke file kubeconfig cluster admin.
Misalnya, untuk cluster pengguna bernama user1, dan file kubeconfig cluster admin dengan jalur kubeconfig bmctl-workspace/admin/admin-kubeconfig, perintahnya adalah:
bmctl create cluster -c user1 --kubeconfig bmctl-workspace/admin/admin-kubeconfig
Pemeriksaan preflight
berlaku untuk cluster pengguna yang Anda buat dengan perintah bmctl create cluster.
Contoh konfigurasi cluster pengguna
Untuk contoh konfigurasi cluster pengguna, lihat Cluster pengguna dalam Contoh konfigurasi cluster.