Halaman ini adalah bagian pertama dari panduan yang memandu Anda menggunakan Google Distributed Cloud (khusus software) untuk bare metal (sebelumnya dikenal sebagai Google Distributed Cloud Virtual, sebelumnya dikenal sebagai cluster Anthos di bare metal) 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. Membuat cluster dasar lanjutan menunjukkan cara membuat cluster admin dan cluster pengguna.
Halaman ini ditujukan bagi 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 Google Cloud konten, 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
- Baca Tentang Google Distributed Cloud.
- Pahami beberapa konsep Google Cloud dasar, termasuk project, izin IAM, dan akun layanan.
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Catat Google Cloud project ID, karena akan diperlukan nanti.
Siapkan workstation admin Anda. Siapkan workstation admin Linux untuk tugas pengelolaan di tempat. Ini bisa berupa mesin yang sudah ada atau khusus, yang dapat mengelola beberapa cluster.
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.
Rencanakan jaringan Anda. Rencanakan alamat IP untuk mesin node, alamat IP virtual (VIP), dan rentang CIDR Service dan Pod.
Tinjau sumber daya Google Cloud yang diperlukan. Untuk membuat cluster, project Anda memerlukan API dan akun layanan Google tertentu.Google Cloud
- Minimal 2 core CPU
- Minimum RAM 4 GiB
- Penyimpanan minimal 128 GiB
Mengonfigurasi Ubuntu
Menginstal gcloud CLI
Menginstal
kubectl
Menginstal
bmctl
Nonaktifkan Uncomplicated Firewall (UFW) dan verifikasi statusnya:
sudo ufw disable sudo ufw status
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
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 ...
Buat grup
docker
.sudo groupadd docker
Tambahkan diri Anda ke grup Docker:
sudo usermod -aG docker $USER
Jalankan perintah berikut untuk mengaktifkan perubahan grup Anda:
newgrp docker
Jalankan perintah berikut untuk memverifikasi bahwa clock sistem disinkronkan:
timedatectl
Output
timedatectl
harus berisi status berikut:System clock synchronized: yes
Login untuk menyetel properti
account
gcloud CLI Anda:gcloud auth login
Tetapkan properti
project
gcloud CLI Anda:gcloud config set project PROJECT_ID
Ganti
PROJECT_ID
dengan ID Google Cloud project Anda.Pastikan properti
account
danproject
Anda disetel dengan benar:gcloud config list
Output menampilkan 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]
Jalankan perintah berikut di workstation admin Anda:
gcloud components install kubectl
Buat direktori
baremetal
dan tambahkan ke jalur Anda. Jika Anda berada di direktori beranda, perintahnya adalah:mkdir baremetal export PATH="$HOME/baremetal:$PATH"
Jalankan perintah berikut untuk mendownload versi terbaru file biner
bmctl
dan membuatnya dapat dieksekusi:gcloud storage cp gs://anthos-baremetal-release/bmctl/1.32.100-gke.106/linux-amd64/bmctl . chmod +x ./bmctl
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 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. Mesin untuk cluster admin dengan satu node bidang kontrol.
Dua mesin untuk cluster pengguna dengan satu node bidang kontrol dan satu worker node.
- Minimal 2 core CPU
- Minimum RAM 4 GiB
- Penyimpanan minimal 128 GiB
Instal dan konfigurasi SSH di semua komputer
Buat kunci SSH dan salin kunci publik ke setiap mesin node
Menonaktifkan autentikasi sandi di mesin node
Verifikasi akses SSH antara workstation admin dan mesin node
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 komentar atau menambahkan barisPermitRootLogin
danPasswordAuthentication
di file/etc/ssh/sshd_config
, lalu menetapkan nilai keyes
:# Authentication: #LoginGraceTime 2m PermitRootLogin yes #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 ... PasswordAuthentication yes
Setel sandi root:
sudo passwd root
Untuk menerapkan perubahan konfigurasi SSH, mulai ulang layanan SSH:
sudo systemctl restart ssh.service
Mulai ulang komputer.
Pastikan SSH berfungsi dengan membuat koneksi SSH dari komputer lain.
Di workstation admin Anda, 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 komputer node Anda:
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, jalur ini adalah/home/USERNAME/.ssh/id_rsa.pub
CLUSTER_NODE_IP
: alamat IP mesin node
Buka
/etc/ssh/sshd_config
dan tetapkanPasswordAuthentication
keno
, lalu simpan file.Mulai ulang layanan SSH.
sudo systemctl restart ssh.service
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
- Node cluster: Anda memerlukan alamat IP untuk setiap mesin node
- Alamat IP virtual (VIP): Anda memerlukan VIP untuk akses ke 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
Rentang CIDR Pod dapat sama untuk beberapa cluster dalam model jaringan mode terisolasi default.
Rentang CIDR Layanan dapat sama untuk beberapa cluster.
Biasanya Anda memerlukan lebih banyak Pod daripada Layanan dalam cluster, jadi Anda mungkin menginginkan rentang CIDR Pod yang lebih besar daripada rentang CIDR Layanan. Misalnya, rentang Pod yang disarankan untuk cluster pengguna memiliki 2(32-16) = 216 alamat, tetapi rentang Layanan yang disarankan untuk cluster pengguna hanya memiliki 2(32-20) = 212 alamat.
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
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
Ringkasan prosedur
Penyiapan infrastruktur minimal terdiri dari langkah-langkah utama berikut:
1. Menyiapkan workstation admin Anda
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:
Persyaratan sistem operasi
Untuk menjalankan bmctl
dan membuat cluster, workstation admin memiliki persyaratan sistem operasi (OS) yang sama dengan node. Setiap mesin harus menjalankan
Ubuntu versi yang didukung.
Mengonfigurasi sistem operasi dan software
Di workstation admin, Anda menginstal dan mengonfigurasi hal berikut:
Mengonfigurasi sistem operasi
Jalankan perintah berikut untuk mengupdate setelan firewall, menginstal dan mengonfigurasi Docker, serta memastikan setiap mesin menggunakan sinkronisasi waktu:
Menginstal Google Cloud CLI.
Untuk menginstal Google Cloud CLI di Ubuntu, ikuti petunjuk dalam panduan penginstalan ini.
Lakukan langkah-langkah berikut di workstation admin Anda untuk mengonfigurasi gcloud CLI:
Instal kubectl
Untuk menginstal 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 Anda:
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 dan gambar, memproses permintaan otorisasi, membuat akun layanan, mengelola logging dan pemantauan, dan lainnya. 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:
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:
Persyaratan hardware
Setiap komputer node harus memenuhi persyaratan hardware berikut:
Persyaratan sistem operasi
Setiap mesin node harus menjalankan versi Ubuntu yang didukung.
Mengonfigurasi Ubuntu
Konfigurasi Ubuntu di setiap node dengan petunjuk yang sama 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:
Instal dan konfigurasi 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:
Buat kunci SSH dan salin kunci publik ke setiap komputer node
Untuk koneksi yang aman dan tanpa sandi antara workstation admin dan node, buat kunci SSH di workstation admin Anda dan bagikan kunci publik ke node.
Menonaktifkan autentikasi sandi di mesin node
Pada tahap ini, Anda tidak perlu lagi mengaktifkan autentikasi sandi.
Untuk setiap mesin node:
Verifikasi 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 Anda:
3. Merencanakan jaringan
Saat menginstal cluster, Anda harus merencanakan alamat IP, termasuk memastikan Anda tidak membuat konflik alamat. Anda mungkin memerlukan bantuan administrator jaringan untuk menemukan alamat yang sesuai, bahkan untuk penginstalan sederhana ini. Tanpa menghitung 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:
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 Layer 2 yang sama. Misalnya, anggaplah semua alamat IP dalam rentang 172.16.20.0/24
dirutekan ke domain Layer 2 tertentu. Misalkan juga 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 menggambarkan domain Layer 2 yang memiliki workstation admin, cluster admin, dan cluster pengguna:
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 | Mesin fisik yang berfungsi sebagai node bidang kontrol untuk cluster pengguna | 172.16.20.11 |
Node pekerja cluster pengguna | Mesin fisik yang menjalankan workload 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 bidang kontrol 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 (termasuk dalam rentang kumpulan alamat MetalLB) | 172.16.20.15 |
Alamat VIP layanan | Sepuluh alamat untuk digunakan sebagai alamat IP eksternal untuk Layanan berjenis
LoadBalancer . Alamat dialokasikan sesuai kebutuhan di node cluster pengguna.
Rentang ini mencakup VIP ingress. Tumpang-tindih alamat IP ini merupakan persyaratan untuk MetalLB, load balancer bawaan 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:
Hindari tumpang-tindih
Untuk menghindari tumpang-tindih dengan alamat IP yang dapat dijangkau di jaringan Anda, Anda mungkin perlu menggunakan rentang CIDR yang berbeda dari saran sebelumnya. Rentang Layanan dan Pod tidak boleh tumpang-tindih dengan alamat di luar cluster yang ingin Anda jangkau dari dalam cluster.
Misalnya, 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 mencapai tujuan apa pun di luar cluster.
Secara khusus, rentang Layanan dan Pod tidak boleh tumpang-tindih dengan:
4. Meninjau resource Google Cloud yang diperlukan
Sebelum Anda dapat membuat cluster, Google Distributed Cloud memerlukan serangkaian Google API tertentu yang diaktifkan di project terkait Anda. Google Cloud Untuk menggunakan Google API, Google Distributed Cloud memerlukan akun layanan yang dikonfigurasi dengan peran IAM tertentu di project Google Cloud terkait Anda.
Proses pembuatan cluster di bagian berikutnya dari panduan ini, Membuat cluster dasar, mengaktifkan API dan membuat akun layanan untuk Anda secara otomatis.
Berikut adalah Google API yang diaktifkan secara otomatis:
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 Artifact 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 workload, 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 |