Di Google Distributed Cloud, beban kerja Anda berjalan di satu atau beberapa cluster pengguna. Halaman ini menunjukkan cara membuat cluster pengguna untuk digunakan di domain topologi Google Distributed Cloud. Google Distributed Cloud versi 1.31 atau yang lebih tinggi diperlukan untuk menggunakan domain topologi.
Untuk menyiapkan domain topologi, Anda harus mengaktifkan cluster lanjutan. Perhatikan batasan berikut pada pratinjau cluster lanjutan:
- Anda dapat mengaktifkan cluster lanjutan pada waktu pembuatan cluster hanya untuk cluster 1.31 baru.
- Setelah cluster lanjutan diaktifkan, Anda tidak akan dapat mengupgrade cluster ke versi 1.32. Hanya aktifkan cluster lanjutan di lingkungan pengujian.
Halaman ini ditujukan untuk Admin, Arsitek, dan Operator yang menyiapkan, memantau, dan mengelola infrastruktur teknologi. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten Google Cloud , lihat Peran dan tugas pengguna GKE Enterprise umum.
Sebelum memulai
Pastikan Anda telah menyiapkan dan dapat login ke workstation admin seperti yang dijelaskan dalam artikel Membuat workstation admin. Workstation admin memiliki alat yang Anda perlukan untuk membuat cluster pengguna. Lakukan semua langkah dalam dokumen ini di workstation admin Anda.
Jika Anda belum melakukannya, siapkan resource Google Cloud seperti yang dijelaskan dalam dokumen ini:
Sebelum membuat cluster pengguna, Anda harus memiliki cluster admin untuk mengelola cluster pengguna. Jika Anda belum melakukannya, buat workstation admin dan cluster admin untuk digunakan dengan domain topologi.
Tentukan versi cluster pengguna yang ingin Anda instal. Saat membuat cluster pengguna, Anda biasanya menginstal versi yang cocok dengan versi cluster admin. Jika Anda ingin menginstal versi yang berbeda di cluster pengguna, lihat Aturan versi.
Tinjau dokumen perencanaan alamat IP, dan pastikan Anda memiliki cukup alamat IP.
Konfigurasikan load balancer untuk load balancing manual. Load balancer Anda harus disiapkan sebelum membuat cluster pengguna.
Pikirkan jumlah node pool yang Anda perlukan dan sistem operasi yang ingin Anda jalankan di setiap node pool.
Kumpulkan informasi yang Anda perlukan untuk mengakses setiap instance vCenter Server. Anda memerlukan informasi ini untuk mengisi bagian
Secret
dan bagianVSphereInfraConfig.credentials.vCenters
dalam file konfigurasi infrastruktur vSphere. Lihat informasi berikut untuk mengetahui cara mendapatkan informasi yang diperlukan:
Ringkasan prosedur
Langkah utama berikut terlibat dalam penggunaan gkectl
untuk membuat cluster pengguna:
- Mengisi file konfigurasi cluster pengguna
- Tentukan detail untuk cluster baru Anda dalam file konfigurasi cluster pengguna.
- Isi file blok IP Anda
- Tentukan alamat IP untuk gateway, netmask, node bidang kontrol, dan secara opsional, node pekerja dalam file blok IP.
- Membuat cluster pengguna
- Jalankan
gkectl create cluster
untuk membuat cluster seperti yang ditentukan dalam file konfigurasi Anda.
- Memverifikasi bahwa cluster pengguna Anda berjalan
- Gunakan
kubectl
untuk melihat node cluster Anda.
Di akhir prosedur ini, Anda akan memiliki cluster pengguna yang berjalan tempat Anda dapat men-deploy beban kerja.
Mengisi file konfigurasi cluster pengguna
Jika Anda menggunakan gkeadm
untuk membuat workstation admin, gkeadm
akan membuat
template untuk file konfigurasi cluster pengguna yang bernama user-cluster.yaml
.
Selain itu, gkeadm
mengisi beberapa kolom untuk Anda.
Jika tidak menggunakan gkeadm
untuk membuat workstation admin, Anda dapat menggunakan
gkectl
untuk membuat template file konfigurasi cluster pengguna.
Untuk membuat template file konfigurasi cluster pengguna:
gkectl create-config cluster --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION
Ganti kode berikut:
OUTPUT_FILENAME
: jalur pilihan Anda untuk
template yang dihasilkan. Jika Anda menghilangkan tanda ini, gkectl
akan memberi nama file
user-cluster.yaml
dan menempatkannya di direktori saat ini.
VERSION
: nomor versi yang diinginkan. Contoh: gkectl create-config cluster --gke-on-prem-version=1.31.0-gke.889
.
Pelajari file konfigurasi dengan memindai dokumen file konfigurasi cluster pengguna. Sebaiknya biarkan dokumen ini tetap terbuka di tab atau jendela terpisah, karena Anda akan merujuknya saat menyelesaikan langkah-langkah berikut.
name
Tetapkan kolom name
ke nama pilihan Anda untuk cluster pengguna.
gkeOnPremVersion
Kolom ini sudah diisi untuk Anda. Ini menentukan versi Google Distributed Cloud. Misalnya, 1.31.0-gke.889
.
enableAdvancedCluster
Tetapkan enableAdvancedCluster
ke true
.
enableControlplaneV2
Controlplane V2 diperlukan untuk semua cluster pengguna 1.30 dan yang lebih tinggi. Tetapkan
enableControlplaneV2
ke true
.
Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna akan berjalan di node dalam cluster pengguna itu sendiri.
enableDataplaneV2
Tetapkan
enableDataplaneV2
ke true
.
vCenter
Hapus seluruh bagian ini. Sebagai gantinya, Anda mengonfigurasi informasi vCenter di file konfigurasi infrastruktur vSphere per domain topologi.
network
Hapus hal berikut dari file konfigurasi:
- Seluruh bagian
network.hostConfig
. Informasi ini dikonfigurasi dalam file konfigurasi infrastruktur vSphere per domain topologi. - Kolom
network.vCenter.networkName
. Kolom ini dikonfigurasi dalam file konfigurasi infrastruktur vSphere per domain topologi. - Seluruh bagian
network.controlPlaneIPBlock
. Alamat IP untuk gateway, netmask, dan node bidang kontrol dikonfigurasi dalam file blok IP.
- Seluruh bagian
Tetapkan
network.ipMode.ipBlockFilePath
ke jalur ke file blok IP.Tentukan cara Anda ingin node pekerja mendapatkan alamat IP-nya. Opsi adalah:
Dari server DHCP yang Anda siapkan sebelumnya. Tetapkan
network.ipMode.type
ke"dhcp"
.Dari daftar alamat IP statis yang Anda berikan dalam file blok IP. Tetapkan
network.ipMode.type
ke"static"
.
Node bidang kontrol untuk cluster pengguna Anda harus mendapatkan alamat IP-nya dari daftar alamat statis yang Anda berikan dalam file blok IP. Hal ini tetap berlaku meskipun node pekerja Anda mendapatkan alamatnya dari server DHCP.
Terlepas dari apakah Anda mengandalkan server DHCP atau menentukan daftar alamat IP statis, Anda harus memiliki cukup alamat IP yang tersedia untuk cluster pengguna. Untuk mengetahui penjelasan tentang jumlah alamat IP yang Anda perlukan, lihat Merencanakan alamat IP.
network.podCIDR dan network.serviceCIDR memiliki nilai yang telah diisi sebelumnya dan Anda dapat membiarkannya tidak berubah kecuali jika bertentangan dengan alamat yang sudah digunakan di jaringan Anda. Kubernetes menggunakan rentang ini untuk menetapkan alamat IP ke Pod dan Layanan di cluster Anda.
loadBalancer
Siapkan VIP untuk server Kubernetes API cluster pengguna Anda. Berikan VIP Anda sebagai nilai untuk
loadBalancer.vips.controlPlaneVIP
Siapkan VIP lain untuk layanan ingress cluster pengguna Anda. Berikan VIP Anda sebagai nilai untuk
loadBalancer.vips.ingressVIP
.Tetapkan
loadBalancer.kind
ke"ManualLB"
, dan isi bagianmanualLB
. Untuk mengetahui informasi selengkapnya, lihat Load balancing manual.
advancedNetworking
Jika Anda berencana membuat
gateway NAT keluar, tetapkan
advancedNetworking
ke true
.
multipleNetworkInterfaces
Tetapkan
multipleNetworkInterfaces
ke false
. Beberapa antarmuka jaringan untuk Pod tidak didukung dengan domain
topologi.
storage
Tetapkan
storage.vSphereCSIDisabled
ke true
untuk menonaktifkan deployment komponen vSphere CSI.
masterNode
Jika Anda ingin menentukan CPU dan memori untuk node bidang kontrol cluster pengguna, isi kolom
cpus
danmemoryMB
di bagianmasterNode
.Hanya cluster dengan ketersediaan tinggi (HA) yang didukung. Tetapkan kolom
replicas
ke3
untuk menentukan bahwa cluster akan memiliki tiga node bidang kontrol.Untuk mengaktifkan pengubahan ukuran otomatis bagi node bidang kontrol, tetapkan
autoResize.enabled
ketrue
.Hapus seluruh bagian
masterNode.vsphere
.Isi kolom
masterNode.topologyDomains
dengan nama domain topologi yang ingin Anda tempatkan node kontrol.
nodePools
Node pool adalah sekelompok node pekerja dalam cluster yang semuanya memiliki konfigurasi yang sama. Misalnya, Anda mungkin ingin menyiapkan domain topologi terpisah untuk setiap kumpulan node. Anda harus menentukan minimal satu kumpulan node dengan mengisi
bagian
nodePools
.
Untuk setiap kumpulan node yang Anda tentukan:
Isi kolom
nodePools[i].topologyDomains
dengan nama domain topologi yang Anda inginkan untuk node pool.Hapus semua kolom di bagian
nodePools[i].vsphere
kecualinodePools[i].vsphere.tags
. Anda menentukan informasi ini dalam file konfigurasi infrastruktur vSphere per domain topologi.
# advanced-cluster-change #
Tetapkan nodePools[i].osImageType
ke ubuntu_cgroupv2
atau
ubuntu_containerd
.
Untuk informasi umum selengkapnya tentang kumpulan node, lihat Kumpulan node dan Membuat dan mengelola kumpulan node.
antiAffinityGroups
Tetapkan
antiAffinityGroups.enabled
ke false
.
Aturan anti-afinitas Distributed Resource Scheduler
(DRS) tidak didukung dengan domain topologi.
stackdriver
Isi bagian
stackdriver
untuk mengaktifkan
Cloud Logging dan Cloud Monitoring
untuk cluster Anda.
Perhatikan persyaratan berikut:
ID di
stackdriver.projectID
harus sama dengan ID digkeConnect.projectID
dancloudAuditLogging.projectID
.Region Google Cloud yang ditetapkan di
stackdriver.clusterLocation
harus sama dengan region yang ditetapkan dicloudAuditLogging.clusterLocation
dangkeConnect.location
. Selain itu, jikagkeOnPremAPI.enabled
adalahtrue
, region yang sama harus ditetapkan digkeOnPremAPI.location
.
Jika project ID dan region tidak sama, pembuatan cluster akan gagal.
gkeConnect
Cluster pengguna Anda harus terdaftar ke Google Cloud fleet.
Isi bagian
gkeConnect
untuk menentukan
project host fleet
dan akun layanan terkait. ID di gkeConnect.projectID
harus sama dengan ID yang ditetapkan di stackdriver.projectID
dan cloudAuditLogging.projectID
. Jika project ID tidak sama, pembuatan cluster akan gagal.
Secara opsional, Anda dapat menentukan region tempat layanan fleet dan
Connect berjalan di gkeConnect.location
. Jika Anda tidak menyertakan kolom ini, cluster akan menggunakan instance global layanan ini.
Jika Anda menyertakan gkeConnect.location
dalam file konfigurasi, region
yang Anda tentukan harus sama dengan region yang dikonfigurasi di
cloudAuditLogging.clusterLocation
, stackdriver.clusterLocation
, dan
gkeOnPremAPI.location
. Jika region tidak sama, pembuatan cluster akan gagal.
gkeOnPremAPI
Bagian ini menjelaskan cara cluster terdaftar di GKE On-Prem API.
Alat command line gkectl
adalah satu-satunya alat pengelolaan siklus proses cluster yang tersedia untuk cluster yang menggunakan domain topologi. Meskipun konsol Google Cloud , Google Cloud CLI, dan Terraform tidak didukung untuk cluster yang menggunakan domain topologi, Anda dapat mendaftarkan cluster secara opsional di GKE On-Prem API saat cluster dibuat.
Jika GKE On-Prem API diaktifkan di projectGoogle Cloud , semua cluster dalam project akan otomatis terdaftar di GKE On-Prem API di region yang dikonfigurasi di stackdriver.clusterLocation
. Region gkeOnPremAPI.location
harus sama dengan
region yang ditentukan dalam
cloudAuditLogging.clusterLocation
, gkeConnect.location
, dan
stackdriver.clusterLocation
.
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.enabled
kefalse
. 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.
cloudAuditLogging
Jika Anda ingin mengintegrasikan log audit dari server Kubernetes API cluster dengan Cloud Audit Logs, isi bagian cloudAuditLogging
.
Perhatikan persyaratan berikut:
# advanced-cluster-change #
Tetapkan cloudAuditLogging.serviceAccountKeyPath
ke jalur yang sama dengan
stackdriver.serviceAccountKeyPath
.
ID di
cloudAuditLogging.projectID
harus sama dengan ID digkeConnect.projectID
danstackdriver.projectID
.Region di
cloudAuditLogging.clusterLocation
harus sama dengan region yang ditetapkan digkeConnect.location
(jika kolom disertakan dalam file konfigurasi Anda) danstackdriver.clusterLocation
. Selain itu, jikagkeOnPremAPI.enabled
adalahtrue
, region yang sama harus ditetapkan digkeOnPremAPI.location
.
Jika project ID dan region tidak sama, pembuatan cluster akan gagal.
preparedSecrets
Hapus kolom preparedSecrets
.
Kredensial yang disiapkan
tidak didukung saat domain topologi diaktifkan.
Contoh file konfigurasi yang terisi
Berikut adalah contoh file blok IP dan file konfigurasi cluster pengguna;
user-ipblock.yaml
blocks: - netmask: 255.255.255.0 gateway: 172.16.21.1 ips: - ip: 172.16.21.2 hostname: worker-vm-1 - ip: 172.16.21.3 hostname: worker-vm-2 - ip: 172.16.21.4 hostname: worker-vm-3 - ip: 172.16.21.5 hostname: worker-vm-4 - netmask: 255.255.255.0 gateway: 100.115.223.254 ips: - ip: 100.115.222.205 hostname: cp-1 isControlPlane: true - ip: 100.115.222.206 hostname: cp-2 isControlPlane: true - ip: 100.115.222.207 hostname: cp-3 isControlPlane: true
user-cluster.yaml
cat user-cluster.yaml apiVersion: v1 kind: UserCluster name: "my-user-cluster" gkeOnPremVersion: 1.31.0-gke.889 enableAdvancedCluster: true enableControlplaneV2: true enableDataplaneV2: true network: ipMode: type: "static" ipBlockFilePath: "user-ipblock.yaml" serviceCIDR: 10.96.0.0/20 podCIDR: 192.168.0.0/16 loadBalancer: vips: controlPlaneVIP: "100.115.222.200" ingressVIP: "172.16.21.30" kind: "ManualLB" manualLB: ingressHTTPNodePort: 32527 ingressHTTPSNodePort: 30139 controlPlaneNodePort: 30968 masterNode: cpus: 4 memoryMB: 8192 replicas: 3 nodePools: - name: "worker-node-pool1" cpus: 4 memoryMB: 8192 replicas: 3 topologyDomains: - "domain1" antiAffinityGroups: enabled: false gkeConnect: projectID: "my-project-123" location: "us-central1" registerServiceAccountKeyPath: "connect-register-sa-2203040617.json" stackdriver: projectID: "my-project-123" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "log-mon-sa-2203040617.json" autoRepair: enabled: true
Berikut adalah poin penting yang perlu dipahami dalam contoh sebelumnya:
Kolom
nodePools.replicas
ditetapkan ke3
, yang berarti ada tiga node pekerja di"worker-node-pool"
. Semua node pekerja menggunakan alamat IP statis karenanetwork.ipMode.type
ditetapkan ke"static"
.Alamat IP untuk node bidang kontrol dan node pekerja ditentukan dalam file blok IP. File blok IP memiliki empat alamat untuk node pekerja meskipun hanya ada tiga node pekerja. Alamat IP node pekerja tambahan diperlukan selama upgrade, update, dan perbaikan otomatis cluster. Alamat IP untuk node bidang kontrol memiliki tanda
isControlPlane: true
.Cluster lanjutan, Controlplane V2, dan Dataplane V2 diaktifkan.
Kolom
masterNode.replicas
disetel ke3
, sehingga cluster akan memiliki bidang kontrol dengan ketersediaan tinggi.VIP bidang kontrol berada di VLAN yang sama dengan node bidang kontrol, dan VIP masuk berada di VLAN yang sama dengan node pekerja
Isi file blok IP Anda
Salin template untuk
file blok IP ke file di
direktori yang Anda tentukan di kolom network.ipMode.ipBlockFilePath
dalam file konfigurasi cluster pengguna. Buat file blok IP terpisah untuk
cluster admin dan untuk setiap cluster pengguna.
Tambahkan alamat IP untuk gateway, netmask, dan node bidang kontrol ke
file blok IP. Untuk setiap alamat IP node kontrol-plane, tambahkan
isControlPlane: true
seperti yang ditunjukkan pada contoh sebelumnya. Jika Anda menginginkan
cluster pengguna ketersediaan tinggi (HA), tentukan tiga alamat IP. Jika tidak,
tentukan satu alamat IP. Jumlah alamat IP yang Anda tentukan untuk node kontrol harus cocok dengan jumlah di kolom masterNode.replicas
dalam file konfigurasi cluster pengguna.
Jika network.ipMode.type
ditetapkan ke "static"
, tambahkan alamat IP untuk
node pekerja ke file blok IP. Pastikan untuk menentukan satu alamat IP tambahan
untuk digunakan selama upgrade, update, dan perbaikan otomatis cluster.
Setiap alamat gateway dalam file blok IP harus cocok dengan alamat yang ditentukan di
kolom topologyDomains[i].network.gateway
dalam file konfigurasi infrastruktur
vSphere. Untuk informasi selengkapnya, lihat
contoh untuk domain topologi.
Membuat cluster pengguna
Jalankan perintah berikut untuk membuat cluster pengguna:
gkectl create cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Menemukan file kubeconfig cluster pengguna
Perintah gkectl create cluster
akan membuat file kubeconfig bernama
USER_CLUSTER_NAME-kubeconfig
di direktori saat ini. Anda akan memerlukan file
kubeconfig ini nanti untuk berinteraksi dengan cluster pengguna.
File kubeconfig berisi nama cluster pengguna Anda. Untuk melihat nama cluster, Anda dapat menjalankan:
kubectl config get-clusters --kubeconfig USER_CLUSTER_KUBECONFIG
Output menampilkan nama cluster. Contoh:
NAME my-user-cluster
Jika ingin, Anda dapat mengubah nama dan lokasi file kubeconfig.
Memverifikasi bahwa cluster pengguna Anda berjalan
Pastikan cluster pengguna Anda berjalan:
kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG
Ganti USER_CLUSTER_KUBECONFIG dengan jalur file kubeconfig cluster pengguna Anda.
Output menampilkan node cluster pengguna. Contoh:
cp-vm-1 Ready control-plane,master 18m cp-vm-2 Ready control-plane,master 18m cp-vm-3 Ready control-plane,master 18m worker-vm-1 Ready 6m7s worker-vm-2 Ready 6m6s worker-vm-3 Ready 6m14s
Mengonfigurasi PodTemplate
Label topologi diisi ke label node di domain topologi.
Kecuali jika penyiapan domain topologi Anda menggunakan batasan default,
"topology.kubernetes.io/zone"
sebagai kunci topologi, Anda harus mengonfigurasi kunci topologi di template pod Deployment, StatefulSet, atau ReplicaSet, sebagaimana berlaku.
Misalnya, Anda menentukan kunci dalam label topologi sebagai
"topology.examplepetstore.com/zone"
. Di PodTemplate
, Anda menentukan kunci sebagai nilai untuk kolom topologySpreadConstraints.topologyKey
. Hal ini memungkinkan
penjadwal Kubernetes mendistribusikan Pod di seluruh domain topologi untuk memastikan
ketersediaan tinggi dan mencegah kelebihan konsentrasi di satu area jika terjadi
kegagalan.
Pemecahan masalah
Lihat Memecahkan masalah pembuatan dan upgrade cluster.