Menyiapkan infrastruktur minimal

Ini adalah bagian pertama dari panduan yang memandu Anda melalui penginstalan kecil bukti konsep GKE di 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 tindak lanjut Membuat cluster dasar menunjukkan cara membuat workstation admin, cluster admin, dan cluster pengguna.

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

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. GKE pada komponen VMware berjalan dalam hierarki objek vSphere.
  3. Rencanakan alamat IP Anda. GKE di VMware mengharuskan Anda memberikan 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 memberikan contoh, meskipun sebaiknya Anda berkonsultasi dengan administrator jaringan guna 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 GKE di VMware, serta akun layanan dengan izin yang diperlukan untuk mengakses dan mendownload GKE di software komponen VMware.

1. Menyiapkan lingkungan Anda

Untuk penginstalan minimal ini, Anda dapat menggunakan satu host fisik yang menjalankan ESXi.

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

    • 8 CPU fisik @ hyperthreading 2,7 GHz diaktifkan
    • RAM 80 gibibyte (GiB)
    • 470 GiB penyimpanan
  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 baru.

Contoh host dan datastore

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

  • Konfigurasi host ESXi:

    • Produsen: Dell Inc.
    • CPU Fisik: 8 CPU @ 2,7 GHz
    • Jenis prosesor: Intel(R) Xeon(R) Platinum 8168 CPU @ 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 vSphere, cluster, datastore, dan jaringan Anda, 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 agar dapat digunakan untuk GKE di disk virtual machine (VMDK) VMware:

govc datastore.mkdir -namespace=true data-disks

3. Merencanakan alamat IP Anda

Seperti yang Anda lihat dalam ringkasan GKE di VMware, penginstalan aGKE di VMware memerlukan sejumlah alamat IP, termasuk:

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

Oleh karena itu, bagian penting dari penyiapan GKE di VMware adalah merencanakan alamat IP Anda, termasuk memastikan bahwa Anda tidak akan menimbulkan konflik penanganan apa pun. Anda mungkin membutuhkan administrator jaringan untuk membantu menemukan nilai yang sesuai untuk dikonfigurasi, bahkan untuk instalasi sederhana ini. Pada sisa bagian ini, kami memberikan contoh ilustratif tentang nilai yang berfungsi untuk penginstalan ini dalam jaringan hipotetis - nilai Anda akan berbeda.

  • Cluster dalam penginstalan minimal ini menggunakan load balancer MetalLB yang dipaketkan. Load balancer ini berjalan pada node cluster, sehingga tidak diperlukan VM tambahan untuk load balancing.

  • GKE di VMware memungkinkan Anda memilih antara menyediakan alamat IP statis untuk node cluster Anda atau menggunakan server DHCP. Dalam penginstalan sederhana ini, Anda akan menggunakan alamat IP statis.

Contoh VLAN

Untuk penginstalan kecil ini, sebaiknya tempatkan workstation admin, node cluster admin, dan node cluster pengguna di VLAN yang sama di jaringan vSphere Anda. Misalnya, semua alamat IP dalam rentang 172.16.20.0/24 dirutekan ke VLAN tertentu. Selain itu, anggaplah administrator jaringan Anda menyatakan bahwa Anda dapat menggunakan 172.16.20.49 - 172.16.20.69 untuk VM dan alamat IP virtual (VIP).

Diagram berikut menggambarkan VLAN yang memiliki workstation admin, cluster admin, dan cluster pengguna. Perhatikan bahwa VIP tidak ditampilkan terkait dengan node tertentu di cluster. Hal ini dikarenakan load balancer MetalLB dapat memilih node mana yang mengumumkan VIP untuk setiap Layanan. Misalnya, di cluster pengguna, satu node pekerja dapat mengumumkan 172.16.20.64, dan node pekerja yang berbeda 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 oleh administrator jaringan Anda: 172.16.20.49.

Contoh alamat IP: node cluster

Tabel berikut memberikan contoh cara alamat IP dapat digunakan untuk node cluster. Perhatikan bahwa tabel menunjukkan alamat untuk dua node tambahan: admin-vm-6 dan user-vm-5. Node tambahan diperlukan selama upgrade, update, dan perbaikan otomatis cluster. Untuk mengetahui informasi lebih lanjut, 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
user-vm-1 Node bidang kontrol untuk cluster pengguna. 172.16.20.53
user-vm-2 Node pekerja cluster pengguna 172.16.20.54
user-vm-3 Node pekerja cluster pengguna 172.16.20.55
user-vm-4 Node pekerja cluster pengguna 172.16.20.56
user-vm-5 172.16.20.57

Contoh alamat IP: VIP untuk cluster admin

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

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

Contoh alamat IP: VIP untuk cluster pengguna

Tabel berikut memberikan contoh cara menentukan VIP untuk cluster pengguna Anda.

Perlu diperhatikan bahwa VIP untuk server Kubernetes API dari cluster pengguna dan VIP traffic masuk berada dalam VLAN yang sama dengan node pekerja dan node bidang kontrol.

VIP Deskripsi Alamat IP
VIP untuk server Kubernetes API dari cluster pengguna Dikonfigurasi di load balancer untuk cluster admin. 172.16.20.59
VIP ingress Dikonfigurasi di 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 ingress. Ini adalah persyaratan untuk load balancer MetalLB.
172.16.20.60 - 172.16.20.69

Alamat IP untuk Pod dan Layanan

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

Untuk melakukannya, tentukan rentang CIDR yang akan digunakan untuk alamat IP Pod dan rentang CIDR lain yang akan digunakan untuk alamat ClusterIP Layanan Kubernetes. Permintaan tersebut ditetapkan sebagai bagian dari konfigurasi cluster, seperti yang akan Anda lihat di bagian berikutnya dari panduan ini.

Sebagai bagian dari perencanaan IP Anda, tentukan rentang CIDR yang ingin digunakan untuk Pod dan Layanan. Gunakan rentang default berikut, kecuali jika Anda memiliki alasan untuk melakukannya:

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 menggambarkan poin-poin berikut:

  • Rentang CIDR Pod bisa sama untuk beberapa cluster.

  • Rentang CIDR Layanan dari cluster tidak boleh tumpang tindih dengan rentang CIDR Layanan dari cluster lainnya.

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

Hindari tumpang-tindih

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

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

Secara khusus, rentang Layanan 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 Pod dan rentang Layanan Anda.

Berikut adalah salah satu alasan direkomendasikan untuk menggunakan alamat RFC 1918. Misalnya, Pod atau rentang Layanan Anda berisi alamat IP eksternal. Setiap traffic yang dikirim dari Pod ke salah satu alamat eksternal tersebut akan diperlakukan sebagai traffic dalam cluster dan tidak akan mencapai tujuan eksternal.

Server DNS dan gateway default

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

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

  • Server NTP yang dapat digunakan oleh node cluster Anda

  • Alamat IP gateway default untuk subnet yang memiliki workstation admin dan node cluster. Misalnya, komputer admin Anda, node cluster admin, dan node cluster pengguna semuanya berada dalam subnet 172.16.20.0/24. Alamat {i>gateway default<i} untuk subnet mungkin 172.16.20.1.

4. Mengonfigurasi firewall dan proxy

Konfigurasikan firewall dan proxy Anda untuk mengizinkan GKE yang diperlukan pada traffic VMware, dengan mengikuti aturan proxy dan firewall. Anda memerlukan alamat IP node cluster yang diidentifikasi di bagian sebelumnya untuk melakukan tugas ini. Perlu diketahui 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 GKE di VMware. Jika tidak terbiasa menggunakan project Google Cloud, Anda dapat menemukan informasi lainnya dalam artikel Membuat dan mengelola project.

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

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

Menyiapkan Google Cloud CLI

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

Izin yang diperlukan

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

Peran IAM berikut memungkinkan Anda membuat akun layanan, menetapkan peran IAM untuk 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 izin yang diperlukan untuk memberikan sendiri peran IAM, lihat Memberikan, mengubah, dan mencabut akses ke resource. Jika tidak memiliki izin ini, orang lain di organisasi Anda harus memberikan peran tersebut untuk Anda.

Untuk memberikan peran:

Linux dan 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 pengenal untuk Akun Google Anda

Menyiapkan akun layanan

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

  • Akun layanan Connect-register (Dihasilkan otomatis)
  • Akun layanan pemantauan logging (Dihasilkan secara otomatis)
  • Akun layanan logging audit (Buat secara manual)
  • Akun layanan akses komponen (Buat secara manual)

Akun layanan logging audit

  1. Dalam project Google Cloud Anda, buat akun layanan yang dapat digunakan GKE di VMware untuk mengirim log audit Kubernetes dari cluster Anda ke Cloud Audit Logs. Akun ini disebut akun layanan logging audit Anda.

    gcloud iam service-accounts create audit-logging-sa \
      --project PROJECT_ID
    
  2. Buat kunci JSON untuk akun layanan logging audit Anda:

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

Ganti SERVICE_ACCOUNT_EMAIL dengan alamat email akun layanan logging audit Anda.

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

Akun layanan akses komponen

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

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

    Ganti PROJECT_ID dengan ID project Google Cloud Anda.

  2. Buat kunci JSON untuk akun layanan akses komponen Anda:

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

    Ganti SERVICE_ACCOUNT_EMAIL dengan alamat email identifikasi unik akun layanan Anda.

  3. Tambahkan peran IAM berikut ke akun layanan akses komponen Anda:

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

Mengaktifkan Google API

  1. Aktifkan Google API berikut di project Google Cloud Anda. Dengan begitu, Anda dapat menggunakan semua layanan Google Cloud yang diperlukan oleh GKE di VMware dalam project 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 \
        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 perlu menginisialisasi API tersebut. Anda dapat melakukannya dengan memanggil perintah gcloud CLI yang menampilkan versi yang tersedia yang dapat digunakan untuk membuat cluster pengguna:

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

    Langkah selanjutnya

Membuat cluster dasar