Menyiapkan infrastruktur minimal

Ini adalah bagian pertama dari panduan yang memandu Anda melalui penginstalan bukti konsep Google Distributed Cloud (khusus software) untuk VMware dengan satu cluster pengguna.

Dokumen ini menunjukkan cara menyiapkan lingkungan vSphere dan Google Cloud minimal untuk penginstalan ini serta merencanakan alamat IP Anda, sedangkan langkah lanjutan Membuat cluster dasar menunjukkan cara membuat workstation admin, cluster admin, dan cluster pengguna.

Infrastruktur yang Anda siapkan menggunakan panduan ini mungkin tidak sesuai untuk kebutuhan produksi dan kasus penggunaan Anda yang sebenarnya. Untuk informasi selengkapnya tentang penginstalan produksi, lihat panduan dan Ringkasan penginstalan.

Sebelum memulai

Ringkasan prosedur

Berikut adalah langkah-langkah utama yang diperlukan dalam penyiapan ini:

  1. Menyiapkan lingkungan Anda Pastikan Anda dapat memenuhi persyaratan resource. Kami memberikan contoh konfigurasi untuk host ESXi dan datastore vSphere yang memenuhi persyaratan untuk penginstalan ini.
  2. Menyiapkan objek vSphere. Komponen Google Distributed Cloud berjalan dalam hierarki objek vSphere.
  3. Rencanakan alamat IP Anda. Google Distributed Cloud mengharuskan Anda menyediakan alamat IP untuk semua node, selain alamat IP virtual (VIP) untuk akses administrator dan pengguna ke deployment Anda. Untuk penyiapan ini, Anda akan menggunakan alamat IP statis untuk node cluster. Kami menyediakan contoh, tetapi sebaiknya Anda berkonsultasi dengan administrator jaringan untuk membantu memilih alamat yang sesuai untuk jaringan Anda.
  4. Mengonfigurasi aturan firewall dan proxy
  5. Menyiapkan resource Google Cloud, termasuk project Google Cloud yang akan Anda gunakan saat menyiapkan dan mengelola Google Distributed Cloud, dan akun layanan dengan izin yang diperlukan untuk mengakses dan mendownload software komponen Google Distributed Cloud.

1. Menyiapkan lingkungan Anda

Untuk instalasi minimal ini, Anda dapat menggunakan satu {i>host<i} fisik yang menjalankan ESXi yang disempurnakan.

  1. Pastikan host Anda memiliki kapasitas CPU, RAM, dan penyimpanan minimum berikut:

    • 8 CPU fisik @ 2,7 GHz hyperthreading diaktifkan
    • RAM 80 gibibyte (GiB)
    • Penyimpanan 470 GiB
  2. Pastikan Anda telah menginstal ESXi versi 7.0u2 atau yang lebih baru.

  3. Pastikan Anda menggunakan vCenter Server versi 7.0u2 atau yang lebih tinggi.

Contoh host dan datastore

Berikut adalah contoh Host ESXi dan vSphere datastore yang memenuhi persyaratan:

  • Konfigurasi host ESXi:

    • Produsen: Dell Inc.
    • CPU fisik: 8 CPU @ 2,7 GHz
    • Jenis prosesor: CPU Intel(R) Xeon(R) Platinum 8168 @ 2,70 GHz
    • Soket prosesor: 2
    • Versi ESXi: 7.0u2 atau yang lebih baru
    • Versi vCenter Server: 7.0u2 atau yang lebih baru
    • Hyperthreading: diaktifkan
  • Konfigurasi Datastore:

    • Jenis: VMFS 6.82
    • Jenis drive: SSD
    • Vendor: DELL
    • Jenis drive: logis
    • Level RAID: RAID1

2. Menyiapkan objek vSphere

Siapkan objek berikut di lingkungan vSphere Anda:

Catat nama pusat data, cluster, datastore, dan jaringan vSphere, karena Anda akan memerlukannya saat menyiapkan workstation admin di Membuat cluster dasar.

Jika Anda telah menyiapkan datastore vSAN, gunakan govc untuk membuat folder di direktori datastore yang akan digunakan untuk disk virtual machine (VMDK) Google Distributed Cloud:

govc datastore.mkdir -namespace=true data-disks

3. Rencanakan alamat IP Anda

Seperti yang Anda lihat di ringkasan Google Distributed Cloud, penginstalan Google Distributed Cloud memerlukan sejumlah alamat IP, termasuk:

  • Alamat IP untuk semua node
  • Alamat IP virtual (VIP) untuk mengakses komponen bidang kontrol seperti server Kubernetes API dan ke aplikasi yang berjalan di cluster pengguna Anda
  • Rentang CIDR untuk komunikasi antara Pod dan Service

Oleh karena itu, bagian penting dari penyiapan Google Distributed Cloud adalah merencanakan alamat IP Anda, termasuk memastikan bahwa Anda tidak menimbulkan konflik pengalamatan. Anda mungkin memerlukan administrator jaringan untuk membantu menemukan nilai yang sesuai untuk dikonfigurasi, bahkan untuk penginstalan sederhana ini. Pada bagian selanjutnya, kami memberikan contoh ilustratif nilai yang berfungsi untuk penginstalan ini di jaringan fiktif - nilai Anda akan berbeda.

  • Cluster dalam instalasi minimal ini menggunakan paket MetalLB dengan load balancer Jaringan Passthrough Eksternal Regional. Load balancer ini berjalan pada node cluster, jadi tidak ada tambahan VM diperlukan untuk load balancing.

  • Dengan Google Distributed Cloud, Anda dapat memilih antara menyediakan alamat IP statis untuk node cluster, atau menggunakan server DHCP. Dalam instalasi sederhana ini, Anda akan menggunakan alamat IP statis.

Contoh VLAN

Untuk instalasi kecil ini, kami sarankan Anda meletakkan workstation admin Anda, node cluster admin, dan node cluster pengguna pada VLAN yang sama di vSphere Anda jaringan. Misalnya, anggap semua alamat IP dalam rentang 172.16.20.0/24 adalah yang dirutekan ke VLAN tertentu. Juga anggaplah administrator jaringan Anda mengatakan bahwa Anda dapat menggunakan 172.16.20.49 - 172.16.20.69 untuk VM dan alamat IP virtual (VIP).

Diagram berikut mengilustrasikan VLAN yang memiliki {i>workstation<i} admin, sebuah admin cluster, dan cluster pengguna. Perhatikan bahwa VIP tidak ditampilkan terkait dengan node tertentu dalam sebuah cluster. Hal ini karena load balancer MetalLB dapat memilih node mana yang mengumumkan VIP untuk satu Service. Misalnya, di cluster pengguna, satu worker node dapat mengumumkan 172.16.20.64, dan {i> worker node<i} dapat mengumumkan 172.16.20.65.

Alamat IP untuk cluster admin dan cluster pengguna.
Alamat IP untuk cluster admin dan cluster pengguna (Klik untuk memperbesar)

Contoh alamat IP: workstation admin

Untuk workstation admin, contoh ini menggunakan alamat pertama dalam rentang yang diberikan kepada Anda oleh administrator jaringan Anda: 172.16.20.49.

Contoh alamat IP: node cluster

Tabel berikut memberikan contoh bagaimana alamat IP dapat digunakan untuk node cluster. Perhatikan bahwa tabel menunjukkan alamat untuk dua node tambahan: admin-vm-6 dan user-vm-5. Tujuan node tambahan diperlukan selama upgrade, update, dan perbaikan otomatis cluster. Untuk informasi selengkapnya, lihat Mengelola alamat IP node.

Nama host VM Deskripsi Alamat IP
admin-vm-1 Node bidang kontrol untuk cluster admin. 172.16.20.50
admin-vm-2 Node bidang kontrol untuk cluster admin. 172.16.20.51
admin-vm-3 Node bidang kontrol untuk cluster admin. 172.16.20.52
VM-pengguna-pengguna Node bidang kontrol untuk cluster pengguna. 172.16.20.53
vm-pengguna Node pekerja cluster pengguna 172.16.20.54
vm-pengguna Node pekerja cluster pengguna 172.16.20.55
vm-4 pengguna Node pekerja cluster pengguna 172.16.20.56
{i>user-vm-5<i} 172.16.20.57

Contoh alamat IP: VIP untuk cluster admin

Tabel berikut memberikan contoh cara menentukan bidang kontrol VIP untuk cluster admin Anda.

VIP Deskripsi Alamat IP
VIP untuk server Kubernetes API cluster admin Dikonfigurasi pada load balancer untuk cluster admin. 172.16.20.58

Contoh alamat IP: VIP untuk cluster pengguna

Tabel berikut memberikan contoh cara menentukan VIP untuk pengguna .

Perhatikan bahwa VIP untuk server Kubernetes API dari cluster pengguna dan VIP masuk berada di VLAN yang sama dengan worker node dan node bidang kontrol.

VIP Deskripsi Alamat IP
VIP untuk server Kubernetes API cluster pengguna Dikonfigurasi pada load balancer untuk cluster admin. 172.16.20.59
VIP ingress Dikonfigurasi pada load balancer untuk cluster pengguna. 172.16.20.60
VIP Layanan Sepuluh alamat untuk Layanan jenis LoadBalancer.
Dikonfigurasi sesuai kebutuhan pada load balancer untuk cluster pengguna.
Perhatikan bahwa rentang ini mencakup VIP masuk. Ini adalah persyaratan untuk load balancer MetalLB.
172.16.20.60 - 172.16.20.69

Alamat IP untuk Pod dan Service

Selain alamat IP untuk node cluster dan untuk mengakses deployment, Anda juga harus menentukan rentang alamat IP yang dapat digunakan dalam setiap cluster untuk traffic dalam cluster.

Untuk melakukannya, tentukan sebuah CIDR rentang yang akan digunakan untuk alamat IP Pod dan rentang CIDR lain yang akan digunakan alamat ClusterIP Layanan Kubernetes. Ini ditentukan sebagai bagian dari konfigurasi cluster, seperti yang akan Anda lihat di bagian selanjutnya dari panduan ini.

Sebagai bagian dari perencanaan IP, tentukan rentang CIDR yang ingin digunakan untuk Pod dan Service. Kecuali Anda memiliki alasan untuk melakukan sebaliknya, gunakan rentang default berikut:

TujuanRentang CIDR default
Pod cluster Admin192.168.0.0/16
Pod cluster pengguna192.168.0.0/16
Layanan cluster Admin10.96.232.0/24
Layanan cluster pengguna10.96.0.0/20

Nilai default-nya menggambarkan poin-poin berikut:

  • Rentang CIDR Pod bisa sama untuk beberapa cluster.

  • Rentang CIDR Layanan untuk cluster tidak boleh tumpang-tindih dengan CIDR Layanan rentang yang lebih besar dari gugus lainnya.

  • Biasanya Anda membutuhkan lebih banyak Pod daripada Service, sehingga untuk cluster tertentu, Anda mungkin menginginkan rentang CIDR Pod yang lebih besar dari rentang Service CIDR. Misalnya, rentang Pod default untuk cluster pengguna memiliki 2^(32-16) = 2^16 tetapi rentang Service default untuk cluster pengguna hanya memiliki 2^(32-20) = 2^12 alamat.

Menghindari tumpang-tindih

Dalam beberapa kasus, Anda mungkin perlu menggunakan rentang CIDR non-default untuk menghindari tumpang-tindih dengan IP yang dapat dijangkau di jaringan Anda. Service dan rentang Pod harus tidak tumpang tindih dengan alamat mana pun di luar cluster yang ingin Anda jangkau di dalam cluster.

Misalnya, rentang Service Anda adalah 10.96.232.0/24, dan rentang Pod Anda adalah 192.168.0.0/16. Semua traffic yang dikirim dari Pod ke alamat di salah satu rentang akan diperlakukan sebagai dalam cluster dan tidak akan mencapai tujuan apa pun di luar gugus ini.

Secara khusus, rentang Service dan Pod tidak boleh tumpang-tindih dengan:

  • Alamat IP node di cluster mana pun

  • Alamat IP yang digunakan oleh mesin load balancer

  • VIP yang digunakan oleh node bidang kontrol dan load balancer

  • Alamat IP server vCenter, server DNS, dan server NTP

Sebaiknya gunakan rentang alamat IP internal yang ditentukan oleh RFC 1918 untuk rentang Pod dan Service Anda.

Berikut adalah salah satu alasan direkomendasikan untuk menggunakan alamat RFC 1918. Misalkan Pod atau rentang Service berisi alamat IP eksternal. Setiap lalu lintas yang dikirim dari Pod ke salah satu alamat eksternal tersebut akan diperlakukan sebagai traffic dalam cluster dan tidak akan sampai ke tujuan eksternal.

Server DNS dan gateway default

Sebelum membuat cluster admin dan pengguna, Anda juga harus mengetahui alamat IP seperti:

  • Server DNS yang dapat digunakan oleh workstation admin dan node cluster Anda

  • Server NTP yang dapat digunakan oleh node cluster Anda

  • Alamat IP gateway {i>default<i} untuk subnet yang memiliki workstation dan node cluster admin. Misalnya, anggaplah admin Anda node cluster admin, dan node cluster pengguna semuanya ada di alamat IP subnet 172.16.20.0/24. Alamat {i>gateway default<i} untuk subnet mungkin menjadi 172.16.20.1.

4. Konfigurasikan firewall dan proxy Anda

Konfigurasikan firewall dan proxy Anda untuk mengizinkan traffic Google Distributed Cloud yang diperlukan, dengan mengikuti Aturan proxy dan firewall. Anda memerlukan alamat IP node cluster yang telah diidentifikasi di bagian sebelumnya untuk melakukan tugas ini. Perlu diperhatikan bahwa karena alamat IP untuk cluster pengguna dan admin tidak ditetapkan ke node tertentu, Anda harus memastikan bahwa semua aturan firewall yang relevan berlaku untuk semua alamat IP untuk setiap cluster.

5. Menyiapkan resource Google Cloud

Project Google Cloud menjadi dasar untuk membuat, mengaktifkan, dan menggunakan semua layanan Google Cloud, termasuk yang digunakan untuk menginstal dan mengelola Google Distributed Cloud. Jika tidak terbiasa menggunakan project Google Cloud, Anda dapat menemukan lebih banyak informasi di Membuat dan mengelola project.

  1. Pilih project Google Cloud yang sudah ada, atau buat yang baru.

  2. Catat project ID Google Cloud, karena diperlukan nanti.

Menyiapkan Google Cloud CLI

Google Cloud CLI adalah alat command line yang dapat Anda gunakan untuk bekerja dengan project. Ikuti petunjuk di Menginstal Google Cloud SDK untuk memastikan Anda memiliki versi terbaru.

Izin yang diperlukan

Jika Anda adalah pemilik project (misalnya, jika membuat project sendiri), Anda sudah memiliki semua izin yang diperlukan untuk melakukan penginstalan sederhana ini selanjutnya. Jika Anda bukan pemilik project, Anda atau administrator project harus memastikan Akun Google Anda memiliki izin yang diperlukan.

Hal berikut Peran IAM memungkinkan Anda membuat akun layanan, menetapkan peran IAM ke akun tersebut, mengaktifkan API, dan memastikan bahwa alat gkeadm dapat membuat dan mengelola akun layanan untuk Anda di bagian kedua penyiapan ini:

  • resourcemanager.projectIamAdmin
  • serviceusage.serviceUsageAdmin
  • iam.serviceAccountCreator
  • iam.serviceAccountKeyAdmin

Untuk mengetahui detail tentang izin yang diperlukan untuk memberikan peran IAM sendiri, lihat Memberikan, mengubah, dan mencabut akses ke resource. Jika Anda tidak memiliki izin ini, orang lain di organisasi Anda harus memberikan peran tersebut untuk Anda.

Untuk memberikan peran:

Linux and macOS

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/resourcemanager.projectIamAdmin"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/serviceusage.serviceUsageAdmin"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/iam.serviceAccountCreator"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/iam.serviceAccountKeyAdmin"

Windows

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/resourcemanager.projectIamAdmin"

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/serviceusage.serviceUsageAdmin"

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/iam.serviceAccountCreator"

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/iam.serviceAccountKeyAdmin"

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud Anda
  • ACCOUNT: alamat email pengidentifikasi untuk akun Google Akun

Menyiapkan akun layanan

Project Google Cloud Anda harus memiliki empat akun layanan untuk Google Distributed Cloud untuk digunakan. Dalam latihan ini, dua dari akun layanan tersebut dibuat untuk Anda secara otomatis. Namun, Anda harus membuat dua layanan lainnya akun secara manual:

  • Hubungkan-daftarkan akun layanan (Dibuat otomatis)
  • Akun layanan pemantauan logging (Dibuat secara otomatis)
  • Akun layanan logging audit (Buat secara manual)
  • Akun layanan akses komponen (Buat secara manual)

Akun layanan logging audit

  1. Di project Google Cloud Anda, buat akun layanan yang Google Distributed Cloud dapat digunakan untuk mengirim log audit Kubernetes dari cluster Anda ke Cloud Audit Logs. Ini disebut logging audit akun layanan Anda.

    gcloud iam service-accounts create audit-logging-sa \
        --display-name "Audit Logging Service Account" \
        --project PROJECT_ID
    

    Ganti PROJECT_ID dengan ID Anda project Google Cloud Anda.

  2. Dapatkan alamat email akun layanan logging audit yang baru dibuat:

    gcloud iam service-accounts list \
        --project PROJECT_ID
    
  3. Buat kunci JSON untuk akun layanan logging audit Anda:

    gcloud iam service-accounts keys create audit-logging-key.json \
        --iam-account SERVICE_ACCOUNT_EMAIL_AUDIT_LOGGING
    

    Ganti SERVICE_ACCOUNT_EMAIL_AUDIT_LOGGING dengan alamat email akun layanan logging audit Anda.

    Anda tidak perlu memberikan peran apa pun ke akun layanan logging audit Anda.

Akun layanan akses komponen

  1. Di project Google Cloud Anda, buat akun layanan yang Google Distributed Cloud dapat digunakan untuk mendownload kode komponen cluster di dari Container Registry. Ini disebut akses komponen Anda akun layanan Anda.

    gcloud iam service-accounts create component-access-sa \
        --display-name "Component Access Service Account" \
        --project PROJECT_ID
    

    Ganti PROJECT_ID dengan ID Anda project Google Cloud Anda.

  2. Dapatkan alamat email akun layanan akses komponen yang baru dibuat:

    gcloud iam service-accounts list \
        --project PROJECT_ID
    
  3. Buat kunci JSON untuk akun layanan akses komponen Anda:

    gcloud iam service-accounts keys create component-access-key.json \
       --iam-account SERVICE_ACCOUNT_EMAIL_COMPONENT_ACCESS
    

    Ganti SERVICE_ACCOUNT_EMAIL_COMPONENT_ACCESS dengan alamat email akun layanan akses komponen Anda.

  4. Tambahkan hal berikut Peran IAM ke akun layanan akses komponen Anda:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:SERVICE_ACCOUNT_EMAIL_COMPONENT_ACCESS" \
        --role "roles/serviceusage.serviceUsageViewer"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:SERVICE_ACCOUNT_EMAIL_COMPONENT_ACCESS" \
        --role "roles/iam.roleViewer"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:SERVICE_ACCOUNT_EMAIL_COMPONENT_ACCESS" \
        --role "roles/iam.serviceAccountViewer"
    

Mengaktifkan Google API

  1. Aktifkan Google API berikut di project Google Cloud Anda. Hal ini memungkinkan Anda akan menggunakan semua layanan Google Cloud yang diperlukan oleh Google Distributed Cloud di pada proyek Anda.

    gcloud services enable --project PROJECT_ID \
        anthos.googleapis.com \
        anthosgke.googleapis.com \
        anthosaudit.googleapis.com \
        cloudresourcemanager.googleapis.com \
        connectgateway.googleapis.com \
        container.googleapis.com \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        gkeonprem.googleapis.com \
        kubernetesmetadata.googleapis.com \
        serviceusage.googleapis.com \
        stackdriver.googleapis.com \
        opsconfigmonitoring.googleapis.com \
        monitoring.googleapis.com \
        logging.googleapis.com \
        iam.googleapis.com \
        storage.googleapis.com
  2. Jika ini adalah pertama kalinya Anda mengaktifkan GKE On-Prem API (gkeonprem.googleapis.com) dalam project, Anda harus lakukan inisialisasi API. Anda bisa melakukannya dengan memanggil perintah gcloud CLI yang menampilkan versi yang dapat Anda gunakan untuk membuat cluster pengguna:

    gcloud container vmware clusters query-version-config \
        --project=PROJECT_ID \
        --location="us-central1"
    

    Langkah selanjutnya

Membuat cluster dasar