Halaman ini adalah bagian pertama dari panduan yang akan memandu Anda dalam menggunakan Google Distributed Cloud software (sebelumnya dikenal sebagai Google Distributed Cloud) untuk membuat instalasi kecil bukti konsep cluster GKE di perangkat keras {i>bare metal<i} Anda. Dokumen ini menunjukkan cara menyiapkan konfigurasi minimum perangkat keras dan merencanakan alamat IP Anda. Tindak lanjut Membuat dasar-dasar cluster menunjukkan cara membuat cluster admin dan cluster pengguna.
Halaman ini ditujukan untuk Admin, arsitek, dan Operator yang menyiapkan, memantau, dan mengelola siklus hidup infrastruktur teknologi yang mendasarinya. Kepada mempelajari lebih lanjut tentang peran umum dan contoh tugas yang kami rujuk dalam konten Google Cloud, lihat Peran dan tugas pengguna GKE Enterprise yang umum.
Infrastruktur yang Anda siapkan menggunakan panduan ini mungkin tidak sesuai untuk kebutuhan produksi dan kasus penggunaan aktual. Untuk informasi selengkapnya tentang produksi penginstalan, lihat Pilih model deployment.
Sebelum memulai
- Baca Tentang Google Distributed Cloud.
- Pahami beberapa konsep dasar Google Cloud, termasuk project, Izin IAM, dan akun layanan Google.
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
- Catat project ID Google Cloud, karena diperlukan nanti.
Ringkasan prosedur
Penyiapan infrastruktur minimal terdiri dari langkah-langkah utama berikut:
Siapkan workstation admin Anda. Siapkan {i>workstation<i} admin Linux untuk tugas pengelolaan infrastruktur lokal. Penyedia ini bisa berupa instance virtual machine, yang dapat mengelola banyak cluster.
Siapkan mesin node cluster Anda. Siapkan setidaknya tiga komputer untuk node: satu node cluster admin, satu node bidang kontrol cluster pengguna, dan satu node node worker cluster pengguna.
Rencanakan jaringan Anda. Rencanakan alamat IP untuk mesin node Anda, alamat IP virtual (VIP), dan rentang CIDR Service dan Pod.
Tinjau resource Google Cloud yang diperlukan. Untuk membuat cluster, Anda harus Project Google Cloud memerlukan Google API dan akun layanan tertentu.
1. Menyiapkan workstation admin Anda
Workstation admin menghosting alat dan file konfigurasi untuk membuat dan bekerja dengan cluster Anda.
Persyaratan hardware
Workstation admin memerlukan daya komputasi, memori, dan penyimpanan yang signifikan untuk menjalankan alat dan menyimpan sumber daya yang terkait dengan pembuatan dan otomatisasi pengelolaan biaya.
Pastikan workstation admin Anda memenuhi persyaratan hardware berikut:
- Minimal 2 core CPU
- RAM minimal 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 berjalan
versi Ubuntu yang didukung.
Mengonfigurasi sistem operasi dan perangkat lunak
Di workstation admin, Anda menginstal dan mengonfigurasi hal berikut:
Mengonfigurasi Ubuntu
Menginstal gcloud CLI
Instal
kubectl
Instal
bmctl
Mengonfigurasi sistem operasi
Jalankan perintah berikut untuk memperbarui setelan firewall, menginstal, dan mengonfigurasi Docker, dan memastikan setiap mesin menggunakan sinkronisasi waktu:
Nonaktifkan Uncomplicated Firewall (UFW) dan verifikasi statusnya:
sudo ufw disable sudo ufw status
Hapus versi Docker sebelumnya, perbarui 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
Pastikan Anda sekarang menjalankan Docker versi 19.03+:
sudo docker version
Baik versi Klien maupun Server harus 19.03 atau lebih tinggi seperti yang 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 ...
Buat grup
docker
.sudo groupadd docker
Tambahkan diri Anda ke grup Docker:
sudo usermod -aG docker $USER
Jalankan perintah berikut untuk mengaktifkan perubahan grup:
newgrp docker
Jalankan perintah berikut untuk memastikan jam sistem sudah 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 di panduan penginstalan kami.
Lakukan langkah-langkah berikut di workstation admin Anda untuk mengonfigurasi gcloud CLI:
Login untuk menetapkan properti
account
gcloud CLI:gcloud auth login
Tetapkan properti
project
gcloud CLI:gcloud config set project PROJECT_ID
Ganti
PROJECT_ID
dengan ID Anda project Google Cloud Anda.Pastikan properti
account
danproject
Anda disetel dengan benar:gcloud config list
Output menunjukkan nilai properti
account
danproject
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
:
Jalankan perintah berikut di workstation admin Anda:
gcloud components install kubectl
Instal bmctl
bmctl
adalah alat command line eksklusif untuk Google Distributed Cloud yang Anda
untuk pembuatan dan pengelolaan cluster.
Untuk menginstal bmctl
di workstation admin Anda:
Buat direktori
baremetal
dan tambahkan ke . Jika Anda berada di direktori utama Anda, perintahnya adalah:mkdir baremetal export PATH="$HOME/baremetal:$PATH"
Jalankan perintah berikut untuk mendownload
bmctl
versi terbaru file biner dan membuatnya dapat dieksekusi:gcloud storage cp gs://anthos-baremetal-release/bmctl/1.30.0-gke.1930/linux-amd64/bmctl . chmod +x ./bmctl
Pastikan
bmctl
sudah diinstal dan dapat dieksekusi:bmctl version
Respons 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 banyak lagi. Anda tidak dapat membuat cluster tanpa akses ke Google Cloud.
Akses dari workstation admin
Untuk membuat dan mengelola cluster dari workstation admin, Anda memerlukan akses berikut ke mesin node:
- Konektivitas Lapisan 3 ke semua mesin node cluster.
- Akses ke VIP bidang kontrol.
- Akses SSH tanpa sandi ke semua mesin node cluster sebagai
root
atau sebagai pengguna dengan hak istimewasudo
tanpa sandi.
Bagian berikut berisi petunjuk untuk menyiapkan SSH pada admin workstation dan mesin node.
2. Menyiapkan mesin node cluster Anda
Untuk penginstalan minimal dari cluster admin tunggal dengan ketersediaan tidak tinggi dan satu cluster pengguna dengan ketersediaan tidak 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 worker {i>node<i}.
Persyaratan hardware
Setiap mesin node harus memenuhi persyaratan hardware berikut:
- Minimal 2 core CPU
- RAM minimal 4 GiB
- Penyimpanan minimal 128 GiB
Persyaratan sistem operasi
Setiap mesin node harus berjalan versi Ubuntu yang didukung.
Konfigurasikan Ubuntu
Konfigurasikan Ubuntu pada setiap {i>node<i} dengan perintah petunjuk yang digunakan untuk workstation admin.
Menyiapkan akses SSH ke node
Workstation admin memerlukan akses SSH tanpa sandi ke semua node cluster
mesin Linux dan Windows. Anda dapat menyiapkan SSH sebagai root
atau dengan pengguna yang tidak memiliki sandi
Hak istimewa sudo
.
Berikut ini langkah-langkah tingkat tinggi guna menyiapkan SSH untuk Google Distributed Cloud:
Menginstal dan mengonfigurasi SSH di semua komputer
Membuat kunci SSH dan menyalin kunci publik ke setiap mesin node
Menonaktifkan autentikasi sandi di komputer node
Memverifikasi akses SSH antara workstation admin dan komputer node
Instal dan konfigurasikan SSH di semua komputer
Google Distributed Cloud memerlukan komunikasi SSH tanpa sandi antara admin workstation dan node cluster. Langkah-langkah berikut harus dilakukan di workstation admin dan setiap komputer node.
Untuk mengonfigurasi SSH pada komputer yang menjalankan Ubuntu:
Jika Anda belum menjalankan server SSH, instal sekarang:
sudo apt update sudo apt install openssh-server sudo systemctl status ssh
Aktifkan autentikasi sandi SSH
root
dengan menghapus tanda komentar atau menambahkan atribut BarisPermitRootLogin
danPasswordAuthentication
di/etc/ssh/sshd_config
dan menetapkan nilainya keyes
:# Authentication: #LoginGraceTime 2m PermitRootLogin yes #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 ... PasswordAuthentication yes
Menyetel sandi root:
sudo passwd root
Untuk menerapkan perubahan konfigurasi SSH, mulai ulang layanan SSH:
sudo systemctl restart ssh.service
Mulai ulang komputer.
Memverifikasi bahwa SSH berfungsi dengan membuat koneksi SSH dari sumber lain mesin Linux dan Windows.
Membuat kunci SSH dan menyalin kunci publik ke setiap mesin node
Untuk koneksi yang aman dan tanpa sandi antara workstation admin dan node, membuat kunci SSH di workstation admin dan berbagi kunci publik dengan node.
Di workstation admin, buat pasangan kunci pribadi dan publik. Jangan tetapkan frasa sandi untuk kunci:
ssh-keygen -t rsa
Di workstation admin, salin kunci publik yang dibuat ke setiap mesin node:
ssh-copy-id -i PUBLIC_KEY root@CLUSTER_NODE_IP
Ganti kode berikut:
PUBLIC_KEY
: jalur ke file yang berisi SSH kunci publik tertentu. Secara default, jalurnya adalah/home/USERNAME/.ssh/id_rsa.pub
CLUSTER_NODE_IP
: alamat IP mesin node
Nonaktifkan autentikasi sandi di komputer node
Pada tahap ini, Anda tidak perlu lagi mengaktifkan autentikasi sandi.
Untuk setiap mesin node:
Buka
/etc/ssh/sshd_config
dan setelPasswordAuthentication
keno
dan menyimpan file.Mulai ulang layanan SSH.
sudo systemctl restart ssh.service
Memverifikasi akses SSH antara workstation admin dan mesin node
Ketika SSH dikonfigurasi dengan benar, Anda dapat membuat koneksi SSH ke komputer node dari workstation admin (sebagai {i>root<i}) tanpa sandi.
Untuk memverifikasi bahwa autentikasi kunci publik berfungsi antara workstation admin Anda dan node cluster Anda:
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, jalur adalah/home/USERNAME/.ssh/id_rsa
CLUSTER_NODE_IP
: alamat IP mesin node
3. Rencanakan jejaring Anda
Saat menginstal cluster, penting untuk merencanakan alamat IP Anda, termasuk memastikan bahwa Anda tidak menciptakan konflik pengalamatan. Anda mungkin administrator jaringan Anda diperlukan untuk membantu menemukan alamat yang cocok, bahkan untuk instalasi sederhana ini. Tidak termasuk Pod dan CIDR Layanan, Anda memerlukan minimal 15 alamat IP unik untuk cluster admin dan cluster pengguna minimum penginstalan.
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 Kubernetes API server, proxy masuk, dan Layanan jenis LoadBalancer
- Pod dan Service: Anda memerlukan rentang alamat CIDR untuk mengakomodasi setiap Layanan yang berjalan di cluster Anda
Selanjutnya, bagian ini memiliki contoh ilustratif dari nilai-nilai yang sesuai untuk instalasi ini dalam jaringan hipotetis - nilai Anda akan berbeda.
Untuk instalasi kecil ini, tempatkan workstation admin, node cluster admin, dan
node cluster pengguna di domain Lapisan 2 yang sama. Misalnya, anggaplah semua IP
alamat dalam rentang 172.16.20.0/24
dirutekan ke Lapisan 2 tertentu
{i>Directory<i} Juga anggaplah administrator jaringan Anda
mengatakan 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 admin workstation, cluster admin, dan cluster pengguna:
Contoh alamat IP node cluster
Tabel berikut memberikan contoh bagaimana alamat IP dapat digunakan untuk node cluster:
Mesin | Deskripsi | Alamat IP |
---|---|---|
Node bidang kontrol cluster admin | Komputer fisik yang berfungsi sebagai node bidang kontrol untuk admin {i>cluster <i}(mengelompokkan) | 172.16.20.10 |
Node bidang kontrol cluster pengguna | Komputer fisik yang berfungsi sebagai node bidang kontrol untuk pengguna {i>cluster <i}(mengelompokkan) | 172.16.20.11 |
Node pekerja cluster pengguna | Mesin fisik yang menjalankan beban kerja pengguna | 172.16.20.12 |
Contoh alamat IP virtual (VIP)
Tabel berikut memberikan contoh cara menentukan VIP untuk {i>cluster <i}(klaster):
VIP | Deskripsi | Alamat IP |
---|---|---|
Alamat VIP bidang kontrol cluster admin | Alamat VIP bidang kontrol cluster admin (Kubernetes API cluster admin server) | 172.16.20.13 |
Alamat VIP bidang kontrol cluster pengguna | Alamat VIP bidang kontrol cluster pengguna (Kubernetes API cluster pengguna server) | 172.16.20.14 |
Alamat VIP masuk | VIP Ingress (termasuk dalam rentang kumpulan alamat MetalLB) | 172.16.20.15 |
Alamat VIP Layanan | Sepuluh alamat untuk digunakan sebagai alamat IP eksternal untuk jenis Layanan
LoadBalancer . Alamat dialokasikan sesuai kebutuhan pengguna
node cluster.
Rentang ini mencakup VIP masuk. Tumpang-tindih alamat IP ini adalah persyaratan untuk MetalLB, load balancer default yang dipaketkan. |
172.16.20.15 - 172.16.20.24 |
Alamat IP untuk Pod dan Service
Selain alamat IP yang telah Anda
tentukan untuk node cluster dan VIP,
Anda perlu menentukan alamat untuk Pod dan Service. Anda menentukan
CIDR menjadi
alamat IP Pod dan rentang CIDR lain yang akan digunakan
ClusterIP
alamat Layanan Kubernetes. Gunakan alamat IP di
ruang alamat pribadi, seperti dijelaskan dalam
RFC 1918.
Alamat ini ditetapkan sebagai bagian dari konfigurasi cluster, seperti yang digambarkan
di bagian selanjutnya dari panduan ini.
Sebagai bagian dari perencanaan IP, tentukan rentang CIDR yang ingin digunakan untuk Pod dan Layanan Google. Kecuali Anda memiliki alasan untuk melakukannya, gunakan referensi berikut rentang yang disarankan:
Tujuan | Rentang CIDR yang terisi 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 bisa sama untuk beberapa cluster secara default, model jaringan island mode.
Rentang CIDR Layanan bisa sama untuk beberapa cluster.
Biasanya Anda memerlukan lebih banyak Pod daripada Service dalam sebuah cluster, jadi Anda mungkin rentang CIDR Pod yang lebih besar dari rentang Service CIDR. Sebagai misalnya, rentang Pod yang disarankan untuk cluster pengguna memiliki 2(32-16) = 216 alamat, tetapi rentang Layanan yang disarankan untuk pengguna cluster hanya memiliki 2(32-20) = 212 alamat.
Menghindari tumpang-tindih
Untuk menghindari tumpang tindih dengan alamat IP yang dapat dijangkau di jaringan Anda, mungkin perlu menggunakan rentang CIDR yang berbeda dari saran sebelumnya. Rentang Service dan Pod tidak boleh tumpang-tindih dengan alamat apa pun di luar cluster yang ingin Anda jangkau dari dalam cluster.
Misalnya, rentang Service adalah 10.96.232.0/24
, dan Pod Anda
rentangnya adalah 192.168.0.0/16
. Traffic yang dikirim dari Pod ke alamat di salah satu
rentang tersebut diperlakukan sebagai dalam cluster dan tidak dapat 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 DNS atau server NTP
4. Meninjau resource Google Cloud yang diperlukan
Agar dapat membuat cluster, Google Distributed Cloud memerlukan serangkaian Google API untuk diaktifkan di project Google Cloud yang terkait. Untuk menggunakan Google API, Google Distributed Cloud memerlukan layanan akun dikonfigurasi dengan Peran IAM dalam project Google Cloud yang terkait.
Proses pembuatan klaster di bagian selanjutnya dari panduan ini, Buat cluster dasar, aktifkan API, dan buat 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-terhubung | Agen Connect menggunakan akun layanan ini untuk mempertahankan koneksi antara cluster Anda dan Google Cloud. Hal ini memungkinkan akses ke cluster dan pengelolaan workload fitur baru, termasuk Konsol Google Cloud hubungkan gateway ke berinteraksi dengan cluster Anda. | roles/gkehub.connect |
daftar anthos-baremetal | 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 |