Merencanakan penginstalan dasar di hardware Anda

Halaman ini adalah bagian pertama dari panduan yang memandu Anda menggunakan software Google Distributed Cloud (sebelumnya dikenal sebagai Google Distributed Cloud Virtual) untuk membuat penginstalan proof of concept kecil cluster GKE di hardware bare metal Anda. Dokumen ini menunjukkan cara menyiapkan lingkungan hardware minimal dan merencanakan alamat IP Anda. Artikel lanjutan Membuat cluster dasar menunjukkan cara membuat cluster admin dan cluster pengguna.

Halaman ini ditujukan untuk Admin, arsitek, dan Operator yang menyiapkan, memantau, dan mengelola siklus proses infrastruktur teknologi yang mendasarinya. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten Google Cloud, lihat Peran dan tugas pengguna GKE Enterprise umum.

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

Sebelum memulai

  1. Baca Tentang Google Distributed Cloud.
  2. Pelajari beberapa konsep dasar Google Cloud, termasuk project, izin IAM, dan akun layanan.
  3. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  4. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  7. Make sure that billing is enabled for your Google Cloud project.

  8. Catat project ID Google Cloud, karena Anda akan memerlukannya nanti.

Ringkasan prosedur

Penyiapan infrastruktur minimal terdiri dari langkah-langkah utama berikut:

  1. Siapkan workstation admin Anda. Siapkan workstation admin Linux untuk tugas pengelolaan di tempat. Ini dapat berupa mesin yang ada atau khusus, yang dapat mengelola beberapa cluster.

  2. Siapkan mesin node cluster Anda. Siapkan minimal tiga mesin untuk node: satu node cluster admin, satu node bidang kontrol cluster pengguna, dan satu node pekerja cluster pengguna.

  3. Merencanakan jaringan Anda. Rencanakan alamat IP untuk mesin node, alamat IP virtual (VIP), dan rentang CIDR Layanan dan Pod.

  4. Tinjau resource Google Cloud yang diperlukan. Untuk membuat cluster, project Google Cloud Anda memerlukan Google API dan akun layanan tertentu.

1. Menyiapkan workstation admin

Workstation admin menghosting alat dan file konfigurasi untuk membuat dan menggunakan cluster Anda.

Persyaratan hardware

Workstation admin memerlukan daya komputasi, memori, dan penyimpanan yang signifikan untuk menjalankan alat dan menyimpan resource yang terkait dengan pembuatan dan pengelolaan cluster.

Pastikan workstation admin Anda memenuhi persyaratan hardware berikut:

  • Minimal 2 core CPU
  • RAM: Minimum 4 GiB
  • Penyimpanan minimal 128 GiB

Persyaratan sistem operasi

Untuk menjalankan bmctl dan membuat cluster, workstation admin memiliki persyaratan sistem operasi (OS) yang sama dengan node. Setiap mesin harus menjalankan versi Ubuntu yang didukung.

Mengonfigurasi sistem operasi dan software

Di workstation admin, Anda akan menginstal dan mengonfigurasi hal berikut:

  • Mengonfigurasi Ubuntu

  • Menginstal gcloud CLI

  • Instal kubectl

  • Instal bmctl

Mengonfigurasi sistem operasi

Jalankan perintah berikut untuk mengupdate setelan firewall, menginstal dan mengonfigurasi Docker, serta memastikan setiap mesin menggunakan sinkronisasi waktu:

  1. Nonaktifkan Uncomplicated Firewall (UFW) dan verifikasi statusnya:

    sudo ufw disable
    sudo ufw status
    
  2. Hapus versi Docker sebelumnya, update pengelola paket, dan instal Docker versi terbaru:

    sudo apt-get remove docker docker-engine docker.io containerd runc
    sudo apt-get update
    sudo apt-get install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg-agent \
      software-properties-common \
      docker.io
    
  3. Pastikan Anda sekarang menjalankan Docker versi 19.03+:

    sudo docker version
    

    Versi Klien dan Server harus 19.03 atau yang lebih tinggi seperti yang ditunjukkan dalam contoh respons berikut:

    Client:
     Version:           20.10.21
     API version:       1.41
     Go version:        go1.18.1
     ...
    
    Server:
     Engine:
      Version:          20.10.21
      API version:      1.41 (minimum version 1.12)
      Go version:       go1.18.1
      ...
    
  4. Buat grup docker.

    sudo groupadd docker
    
  5. Tambahkan diri Anda ke grup Docker:

    sudo usermod -aG docker $USER
    
  6. Jalankan perintah berikut untuk mengaktifkan perubahan grup Anda:

    newgrp docker
    
  7. Jalankan perintah berikut untuk memverifikasi bahwa jam sistem disinkronkan:

    timedatectl
    

    Output timedatectl harus berisi status berikut:

    System clock synchronized: yes
    

Menginstal Google Cloud CLI.

Untuk menginstal Google Cloud CLI di Ubuntu, ikuti petunjuk dalam panduan penginstalan ini.

Lakukan langkah-langkah berikut di workstation admin untuk mengonfigurasi gcloud CLI:

  1. Login untuk menetapkan properti account gcloud CLI:

    gcloud auth login
    
  2. Tetapkan properti project gcloud CLI Anda:

    gcloud config set project PROJECT_ID
    

    Ganti PROJECT_ID dengan ID project Google Cloud Anda.

  3. Pastikan properti account dan project Anda ditetapkan dengan benar:

    gcloud config list
    

    Output menunjukkan nilai properti account dan project Anda. Contoh:

    [core]
    account = my-name@google.com
    disable_usage_reporting = False
    project = my-project-1234
    Your active configuration is: [default]
    

Instal kubectl

Untuk menginstal kubectl:

  1. Jalankan perintah berikut di workstation admin Anda:

    gcloud components install kubectl
    

Instal bmctl

bmctl adalah alat command line eksklusif untuk Google Distributed Cloud yang dapat Anda gunakan untuk pembuatan dan pengelolaan cluster.

Untuk menginstal bmctl di workstation admin:

  1. Buat direktori baremetal dan tambahkan ke jalur Anda. Jika Anda berada di direktori utama, perintahnya adalah:

    mkdir baremetal
    export PATH="$HOME/baremetal:$PATH"
    
  2. Jalankan perintah berikut untuk mendownload file biner bmctl versi terbaru dan membuatnya dapat dieksekusi:

    gcloud storage cp gs://anthos-baremetal-release/bmctl/1.30.300-gke.84/linux-amd64/bmctl .
    chmod +x ./bmctl
    
  3. Pastikan bmctl telah diinstal dan dapat dieksekusi:

    bmctl version
    

    Responsnya akan terlihat seperti berikut:

    [2023-05-12 17:36:16+0000] bmctl version: 1.14.2-gke.11, git commit: 4ff1347446a93925a079000b50437d4ecebcdf3a, build date: Mon Feb 27 14:07:30 PST 2023

Konektivitas

Workstation admin memerlukan akses ke Google Cloud dan semua node cluster Anda.

Akses ke Google Cloud

Workstation admin mengakses Google Cloud untuk mendownload dan menginstal alat serta image, memproses permintaan otorisasi, membuat akun layanan, mengelola logging dan pemantauan, dan lainnya. Anda tidak dapat membuat cluster tanpa akses ke Google Cloud.

Mengakses dari workstation admin

Untuk membuat dan mengelola cluster dari workstation admin, Anda memerlukan akses berikut ke mesin node:

Bagian berikut berisi petunjuk untuk menyiapkan SSH di workstation admin dan mesin node.

2. Menyiapkan mesin node cluster

Untuk penginstalan minimal satu cluster admin non-ketersediaan tinggi dan satu cluster pengguna non-ketersediaan tinggi, Anda memerlukan tiga mesin:

  • Mesin untuk cluster admin dengan satu node bidang kontrol.

  • Dua mesin untuk cluster pengguna dengan satu node bidang kontrol dan satu node pekerja.

Persyaratan hardware

Setiap mesin node harus memenuhi persyaratan hardware berikut:

  • Minimal 2 core CPU
  • RAM: Minimum 4 GiB
  • Penyimpanan minimal 128 GiB

Persyaratan sistem operasi

Setiap mesin node harus menjalankan versi Ubuntu yang didukung.

Mengonfigurasi Ubuntu

Konfigurasikan Ubuntu di setiap node dengan petunjuk yang sama dengan yang digunakan untuk workstation admin.

Menyiapkan akses SSH ke node

Workstation admin memerlukan akses SSH tanpa sandi ke semua mesin node cluster. Anda dapat menyiapkan SSH sebagai root atau dengan pengguna yang memiliki hak istimewa sudo tanpa sandi.

Berikut adalah langkah-langkah tingkat tinggi untuk menyiapkan SSH untuk Google Distributed Cloud:

  1. Menginstal dan mengonfigurasi SSH di semua komputer

  2. Membuat kunci SSH dan menyalin kunci publik ke setiap mesin node

  3. Menonaktifkan autentikasi sandi di mesin node

  4. Memverifikasi akses SSH antara workstation admin dan mesin node

Menginstal dan mengonfigurasi SSH di semua komputer

Google Distributed Cloud memerlukan komunikasi SSH tanpa sandi antara workstation admin dan node cluster. Langkah-langkah berikut harus dilakukan di workstation admin dan setiap mesin node.

Untuk mengonfigurasi SSH di komputer yang menjalankan Ubuntu:

  1. Jika Anda belum menjalankan server SSH, instal sekarang:

    sudo apt update
    sudo apt install openssh-server
    sudo systemctl status ssh
    
  2. Aktifkan autentikasi sandi SSH root dengan menghapus komentar atau menambahkan baris PermitRootLogin dan PasswordAuthentication di file /etc/ssh/sshd_config dan menetapkan nilai ke yes:

    # Authentication:
    
    #LoginGraceTime 2m
    PermitRootLogin yes
    #StrictModes yes
    #MaxAuthTries 6
    #MaxSessions 10
    ...
    PasswordAuthentication yes
    
  3. Menetapkan sandi root:

    sudo passwd root
    
  4. Untuk menerapkan perubahan konfigurasi SSH, mulai ulang layanan SSH:

    sudo systemctl restart ssh.service
    
  5. Mulai ulang komputer.

  6. Pastikan SSH berfungsi dengan membuat koneksi SSH dari mesin lain.

Membuat kunci SSH dan menyalin kunci publik ke setiap mesin node

Untuk koneksi aman tanpa sandi antara workstation admin dan node, buat kunci SSH di workstation admin dan bagikan kunci publik ke node.

  1. Di workstation admin, buat pasangan kunci pribadi dan publik. Jangan tetapkan frasa sandi untuk kunci:

    ssh-keygen -t rsa
    
  2. Di workstation admin, salin kunci publik yang dihasilkan ke setiap mesin node:

    ssh-copy-id -i PUBLIC_KEY root@CLUSTER_NODE_IP
    

    Ganti kode berikut:

    • PUBLIC_KEY: jalur ke file yang berisi kunci publik SSH. Secara default, jalurnya adalah /home/USERNAME/.ssh/id_rsa.pub
    • CLUSTER_NODE_IP: alamat IP mesin node
Menonaktifkan autentikasi sandi di komputer node

Pada tahap ini, Anda tidak perlu lagi mengaktifkan autentikasi sandi.

Untuk setiap mesin node:

  1. Buka /etc/ssh/sshd_config dan tetapkan PasswordAuthentication ke no, lalu simpan file.

  2. Mulai ulang layanan SSH.

    sudo systemctl restart ssh.service
    
Memverifikasi akses SSH antara workstation admin dan mesin node

Jika SSH dikonfigurasi dengan benar, Anda dapat membuat koneksi SSH ke mesin node dari workstation admin (sebagai root) tanpa sandi.

Untuk memverifikasi bahwa autentikasi kunci publik berfungsi antara workstation admin dan node cluster:

  1. Di workstation admin, jalankan perintah berikut untuk setiap mesin node:

    ssh -o IdentitiesOnly=yes -i PRIVATE_KEY root@CLUSTER_NODE_IP
    

    Ganti kode berikut:

    • PRIVATE_KEY: jalur ke file yang berisi kunci pribadi SSH. Secara default, jalurnya adalah /home/USERNAME/.ssh/id_rsa
    • CLUSTER_NODE_IP: alamat IP mesin node

3. Merencanakan jaringan

Saat menginstal cluster, Anda harus merencanakan alamat IP, termasuk memastikan bahwa Anda tidak membuat konflik alamat. Anda mungkin memerlukan bantuan administrator jaringan untuk menemukan alamat yang sesuai, bahkan untuk penginstalan sederhana ini. Tidak termasuk CIDR Pod dan Service, Anda memerlukan setidaknya 15 alamat IP unik untuk penginstalan cluster admin dan cluster pengguna minimum.

Rencanakan dan tentukan alamat IP untuk komponen cluster berikut:

  • Node cluster: Anda memerlukan alamat IP untuk setiap mesin node
  • Alamat IP virtual (VIP): Anda memerlukan VIP untuk mengakses server Kubernetes API, proxy ingress, dan Layanan jenis LoadBalancer
  • Pod dan Layanan: Anda memerlukan rentang alamat CIDR untuk mengakomodasi setiap Pod dan Layanan yang berjalan di cluster Anda

Bagian selanjutnya dari artikel ini berisi contoh ilustrasi nilai yang berfungsi untuk penginstalan ini dalam jaringan hipotetis - nilai Anda akan berbeda.

Untuk penginstalan kecil ini, tempatkan workstation admin, node cluster admin, dan node cluster pengguna di domain Lapisan 2 yang sama. Misalnya, anggap semua alamat IP dalam rentang 172.16.20.0/24 dirutekan ke domain Lapisan 2 tertentu. Selain itu, anggaplah administrator jaringan Anda mengatakan bahwa Anda dapat menggunakan 172.16.20.10 - 172.16.20.12 untuk alamat mesin node dan 172.16.0.13 - 172.16.20.24 untuk VIP.

Diagram berikut mengilustrasikan domain Lapisan 2 yang memiliki workstation admin, cluster admin, dan cluster pengguna:

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

Contoh alamat IP node cluster

Tabel berikut memberikan contoh cara alamat IP dapat digunakan untuk node cluster:

Mesin Deskripsi Alamat IP
Node bidang kontrol cluster admin Mesin fisik yang berfungsi sebagai node bidang kontrol untuk cluster admin 172.16.20.10
Node bidang kontrol cluster pengguna Komputer fisik yang berfungsi sebagai node bidang kontrol untuk cluster pengguna 172.16.20.11
Node pekerja cluster pengguna Komputer fisik yang menjalankan beban kerja pengguna 172.16.20.12

Contoh alamat IP virtual (VIP)

Tabel berikut memberikan contoh cara menentukan VIP untuk cluster Anda:

VIP Deskripsi Alamat IP
Alamat VIP control plane cluster admin Alamat VIP bidang kontrol cluster admin (server Kubernetes API cluster admin) 172.16.20.13
Alamat VIP bidang kontrol cluster pengguna Alamat VIP bidang kontrol cluster pengguna (server Kubernetes API cluster pengguna) 172.16.20.14
Alamat VIP ingress VIP ingress (disertakan dalam rentang kumpulan alamat MetalLB) 172.16.20.15
Alamat VIP layanan Sepuluh alamat untuk digunakan sebagai alamat IP eksternal untuk Layanan jenis LoadBalancer. Alamat dialokasikan sesuai kebutuhan di node cluster pengguna.

Rentang ini mencakup VIP masuk. Tumpang-tindih alamat IP ini adalah persyaratan untuk MetalLB, load balancer yang dipaketkan secara default.

172.16.20.15 - 172.16.20.24

Alamat IP untuk Pod dan Layanan

Selain alamat IP yang telah Anda tentukan untuk node cluster dan VIP, Anda perlu menentukan alamat untuk Pod dan Layanan. Anda menentukan rentang CIDR yang akan digunakan untuk alamat IP Pod dan rentang CIDR lain yang akan digunakan untuk alamat ClusterIP Layanan Kubernetes. Gunakan alamat IP di ruang alamat pribadi, seperti yang dijelaskan dalam RFC 1918. Alamat ini ditentukan sebagai bagian dari konfigurasi cluster, seperti yang diilustrasikan di bagian berikutnya dalam panduan ini.

Sebagai bagian dari perencanaan IP, tentukan rentang CIDR yang ingin Anda gunakan untuk Pod dan Layanan. Kecuali jika Anda memiliki alasan untuk melakukannya, gunakan rentang yang disarankan berikut:

Tujuan Rentang CIDR yang diisi otomatis
Pod cluster admin 192.168.0.0/16
Layanan cluster admin 10.96.0.0/20
Pod cluster pengguna 192.168.0.0/16
Layanan cluster pengguna 10.96.0.0/20

Rentang yang disarankan menggambarkan poin-poin berikut:

  • Rentang CIDR Pod dapat sama untuk beberapa cluster dalam model jaringan mode pulau default.

  • Rentang CIDR Layanan dapat sama untuk beberapa cluster.

  • Biasanya, Anda memerlukan lebih banyak Pod daripada Layanan di cluster, sehingga Anda mungkin ingin rentang CIDR Pod yang lebih besar daripada rentang CIDR Layanan. Misalnya, rentang Pod yang disarankan untuk cluster pengguna memiliki alamat 2(32-16) = 216, tetapi rentang Layanan yang disarankan untuk cluster pengguna hanya memiliki alamat 2(32-20) = 212.

Hindari tumpang-tindih

Untuk menghindari tumpang-tindih dengan alamat IP yang dapat dijangkau di jaringan, Anda mungkin perlu menggunakan rentang CIDR yang berbeda dengan saran sebelumnya. Rentang Layanan dan Pod tidak boleh tumpang-tindih dengan alamat apa pun di luar cluster yang ingin Anda jangkau dari dalam cluster.

Misalnya, anggap rentang Layanan Anda adalah 10.96.232.0/24, dan rentang Pod Anda adalah 192.168.0.0/16. Traffic yang dikirim dari Pod ke alamat dalam salah satu rentang tersebut diperlakukan sebagai dalam cluster dan tidak dapat menjangkau 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 kontrol dan load balancer

  • Alamat IP server DNS atau server NTP

4. Meninjau resource Google Cloud yang diperlukan

Sebelum Anda dapat membuat cluster, Google Distributed Cloud memerlukan kumpulan Google API tertentu untuk diaktifkan di project Google Cloud terkait. Untuk menggunakan Google API, Google Distributed Cloud memerlukan akun layanan yang dikonfigurasi dengan peran IAM tertentu di project Google Cloud terkait.

Proses pembuatan cluster di bagian berikutnya dalam panduan ini, Membuat cluster dasar, akan mengaktifkan API dan membuat akun layanan untuk Anda secara otomatis.

Berikut adalah Google API yang diaktifkan secara otomatis:

  • anthos.googleapis.com
  • anthosaudit.googleapis.com
  • anthosgke.googleapis.com
  • cloudresourcemanager.googleapis.com
  • connectgateway.googleapis.com
  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • gkeonprem.googleapis.com
  • iam.googleapis.com
  • logging.googleapis.com
  • monitoring.googleapis.com
  • opsconfigmonitoring.googleapis.com
  • serviceusage.googleapis.com
  • stackdriver.googleapis.com
  • storage.googleapis.com

Tabel berikut menjelaskan akun layanan yang dibuat secara otomatis:

Akun layanan Tujuan Peran
anthos-baremetal-gcr Google Distributed Cloud menggunakan akun layanan ini untuk mendownload image container dari Container Registry. Tidak ada
anthos-baremetal-connect Connect Agent menggunakan akun layanan ini untuk mempertahankan koneksi antara cluster Anda dan Google Cloud. Hal ini memungkinkan akses ke cluster dan fitur pengelolaan beban kerja, termasuk konsol Google Cloud dan gateway koneksi untuk berinteraksi dengan cluster Anda. roles/gkehub.connect
anthos-baremetal-register Agen Connect menggunakan akun layanan ini untuk mendaftarkan cluster Anda ke fleet. roles/gkehub.admin
anthos-baremetal-cloud-ops Agen Stackdriver menggunakan akun layanan ini untuk mengekspor log dan metrik dari cluster ke Cloud Logging dan Cloud Monitoring. roles/logging.logWriter
roles/monitoring.metricWriter
roles/stackdriver.resourceMetadata.writer
roles/opsconfigmonitoring.resourceMetadata.writer
roles/monitoring.dashboardEditor

Langkah selanjutnya

Membuat cluster dasar