Tutorial ini menunjukkan cara membuat dan mengelola virtual machine (VM) Linux
tentang penginstalan baru Runtime VM di GDC. Anda akan mempelajari
proses untuk
membuat dan menentukan dependensi dasar seperti StorageClass
dan virtual
jaringan, kemudian buat VM
yang menggunakan resource ini. Kemudian, Anda belajar
bagaimana mengedit
VM, seperti untuk menambahkan disk baru.
Tujuan
- Mengonfigurasi dependensi dasar
- Membuat
StorageClass
untuk VM Runtime di GDC - Buat jaringan virtual untuk digunakan oleh VM Anda
- Membuat
- Membuat boot disk virtual machine
- Membuat VM
- Mengedit VM untuk menambahkan disk virtual baru
Sebelum memulai
Untuk menyelesaikan tutorial ini, Anda memerlukan akses ke referensi dan alat:
- Akses ke Google Distributed Cloud versi 1.12.0 (
anthosBareMetalVersion: 1.12.0
) atau cluster yang lebih tinggi. Anda dapat menggunakan jenis cluster apa pun yang dapat menjalankan workload. Jika diperlukan, coba Google Distributed Cloud di Compute Engine atau lihat ringkasan pembuatan cluster. - Alat klien
virtctl
diinstal sebagai plugin untukkubectl
. Jika diperlukan, instal alat klien virtctl.
Membuat StorageClass
Anda menggunakan StorageClass
untuk menentukan jenis penyimpanan yang Anda sediakan
atau VM. Kelas penyimpanan yang berbeda mungkin dipetakan ke jenis penyimpanan yang berbeda
perangkat keras, sistem file, atau kinerja.
Hal ini di luar cakupan tutorial ini untuk memberikan instruksi khusus tentang
setiap StorageClass
dan partner penyimpanan.
Partner penyimpanan Google Distributed Cloud Ready berikan persyaratan Antarmuka Penyimpanan Container (CSI) {i>driver<i} yang menginstal dan mengkonfigurasi sumber daya khusus yang diperlukan untuk Storage. Untuk menginstal driver CSI di cluster Anda, tinjau daftar driver yang didukung partner penyimpanan Google Cloud Platform dan ikuti petunjuknya.
Satu atau beberapa penyimpanan setelah Anda menginstal driver CSI untuk platform penyimpanan yang tersedia di cluster Anda. Anda menggunakan salah satu kelas penyimpanan ini untuk membuat {i>hard disk<i} virtual dalam tutorial ini.
Contoh dasar berikut
StorageClass
NFS
menggunakan
Driver NFS CSI.
Anda menentukan alamat server NFS dan jalur yang akan digunakan di StorageClass
. Semua
node di cluster Anda kemudian dapat terhubung ke dan menggunakan penyimpanan NFS ini:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: example-nfs
provisioner: nfs.csi.k8s.io
parameters:
server: nfs-server.example.com
path: /vm-share
reclaimPolicy: Delete
volumeBindingMode: Immediate
mountOptions:
- nconnect=8
- nfsvers=4.1
Dalam tutorial ini, gunakan nama StorageClass
di cluster Anda sendiri.
Runtime VM di GDC secara otomatis menghasilkan satu profil penyimpanan untuk
setiap StorageClass
dalam cluster. Profil penyimpanan adalah nama yang sama dengan
StorageClass
terkait. Profil penyimpanan menyediakan opsi konfigurasi tambahan
yang terkait dengan setiap StorageClass
. Untuk informasi selengkapnya tentang penyimpanan
profil, termasuk petunjuk konfigurasi, lihat
Mengonfigurasi profil penyimpanan.
Membuat jaringan virtual
VM terhubung ke jaringan virtual menggunakan antarmuka jaringan virtual. Virtual memungkinkan berkomunikasi dengan VM lain di cluster, atau dengan resource di luar klaster.
Dalam tutorial ini, Anda membuat jaringan virtual Lapisan 2 (L2
) dasar yang dapat menggunakan
server DHCP eksternal. Saat Anda mengaktifkan penggunaan
server DHCP eksternal, Anda
dapat melewati konfigurasi pengaturan DNS
dan {i>gateway<i} jika disediakan oleh
DHCP.
Untuk membuat jaringan yang menggunakan server DHCP eksternal, selesaikan langkah-langkah berikut langkah:
Membuat manifes
Network
, sepertidhcp-network.yaml
, di editor pilihan Anda:nano dhcp-network.yaml
Salin dan tempel manifes YAML berikut:
apiVersion: networking.gke.io/v1 kind: Network metadata: name: NETWORK_NAME spec: type: L2 nodeInterfaceMatcher: interfaceName: INTERFACE_NAME externalDHCP4: true
Ganti nilai berikut:
NETWORK_NAME
: nama untuk jaringan Anda.INTERFACE_NAME
: nama antarmuka di Node Google Distributed Cloud untuk menghubungkan jaringan. Semua node harus memiliki nama antarmuka yang sama.
Dalam manifes
Network
ini, nilai berikut ditetapkan:- Beban kerja hanya dapat memiliki
L2
lampiran ke jaringan ini. Ini adalah satu-satunya jaringantype
yang dapat Anda buat di VM Runtime di GDC. - Jaringan mengaktifkan DHCP eksternal. Server DHCP eksternal merupakan bertanggung jawab atas alokasi alamat IPv4, rute, {i>gateway<i}, dan DNS Anda. untuk beban kerja yang terhubung ke jaringan ini.
Simpan dan tutup manifes
Network
di editor Anda.Buat jaringan menggunakan
kubectl
:kubectl apply -f use-dhcp-network.yaml
Membuat boot disk VM
VM dapat menggunakan disk image yang telah dibuat sebelumnya, atau melakukan booting dari image ISO untuk
menginstal OS. {i>Disk image <i}ini dapat disimpan dan diakses
menggunakan HTTP, atau dalam
Cloud Storage dan diakses menggunakan Secret
.
Dalam tutorial ini, Anda akan membuat {i>boot disk<i} dari Ubuntu Server 20.04 publik gambar cloud menggunakan HTTP.
Untuk membuat disk dari image, selesaikan langkah-langkah berikut.
Buat manifes
VirtualMachineDisk
, sepertimy-disk.yaml
, di pilihan Anda:nano my-disk.yaml
Salin dan tempel definisi YAML berikut:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 20Gi storageClassName: STORAGE_CLASS_NAME source: http: url: https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64.img
Ganti nilai berikut:
DISK_NAME
: nama yang Anda inginkan untuk disk. Ini contoh menghasilkan disk20Gi
(20 gibibyte) yang diberi namaDISK_NAME
menggunakan Ubuntu publik Image server 20.04.STORAGE_CLASS_NAME
:StorageClass
yang Anda inginkan yang akan digunakan untukVirtualMachineDisk
.- Gunakan
kubectl get storageclass
untuk mencantumkan apa yang tersedia di cluster Anda.
- Gunakan
Simpan dan tutup manifes
VirtualMachineDisk
di editor Anda.Buat disk menggunakan
kubectl
:kubectl apply -f my-disk.yaml
Membuat VM
Dengan jaringan virtual dan {i>boot disk<i} yang telah dibuat di bagian sebelumnya,
membuat VM. VM terhubung ke jaringan virtual, dan melakukan booting dari
{i>disk<i}. Petunjuk berikut membuat VM dengan langsung menerapkan sebuah
File manifes YAML VirtualMachine
dengan CLI kubectl
.
Buat manifes yang menentukan
VirtualMachine
, sepertimy-vm.yaml
, di editor pilihan Anda:nano my-vm.yaml
Salin dan tempel definisi YAML berikut:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: osType: linux compute: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE interfaces: - name: eth0 networkName: NETWORK_NAME default: true disks: - boot: true virtualMachineDiskName: DISK_NAME
Ganti nilai berikut:
VM_NAME
: nama untuk VM Anda.VCPU_NUMBER
: Jumlah vCPU opsional yang akan ditetapkan VM. Tanpa setelan ini, jumlah default 2 vCPU akan ditetapkan.- Anda dapat menetapkan antara 1 hingga 96 vCPU ke VM.
MEMORY_SIZE
: Jumlah memori opsional yang akan ditetapkan VM. Tanpa setelan ini, setelan default memori sebesar 4 GiB akan ditetapkan.- Anda dapat menetapkan antara 1 juta dan 1 T memori ke VM. Untuk informasi selengkapnya, lihat Unit resource memori.
NETWORK_NAME
: nama jaringan Anda yang dibuat di bagian sebelumnya.DISK_NAME
: nama boot disk yang dibuat di bagian sebelumnya. Disk ini disetel keboot: true
.
Simpan dan tutup manifes di editor Anda.
Buat VM dan disk menggunakan
kubectl
:kubectl apply -f my-vm.yaml
Pembuatan VM memerlukan waktu beberapa menit. Periksa status VM dengan perintah kubectl:
kubectl get gvm VM_NAME
Contoh output berikut menunjukkan VM dalam status
Running
:NAME STATUS AGE IP MY_VM Running 64s 192.168.2.124
Menghubungkan ke VM
Ketika VM Anda berjalan, hubungkan ke konsol VM. Konsol ini memungkinkan Anda melakukan tugas-tugas dasar seperti mengonfigurasi VM atau menginstal aplikasi.
Untuk mengakses VM dari konsol, gunakan
kubectl
:kubectl virt console VM_NAME
Saat diminta, masukkan kredensial pengguna yang Anda tentukan untuk membuat VM.
Setelah Anda berhasil terhubung ke konsol VM, keluar dari sesi VM dan konsol:
Ctrl + ]
Edit VM
Selama siklus proses VM, Anda mungkin ingin mengedit VM. Misalnya, Anda mungkin ingin menambah penyimpanan untuk menginstal aplikasi pada {i>disk<i} khusus, atau menggunakan penyimpanan tambahan untuk aplikasi Anda.
Dalam tutorial ini, membuat disk kosong dan memasangnya ke VM. Skenario ini memungkinkan Anda membuat {i>disk<i} data untuk menyimpan data aplikasi.
Buat manifes
VirtualMachineDisk
, sepertimy-data-disk.yaml
, di pilihan Anda:nano my-data-disk.yaml
Salin dan tempel definisi YAML berikut:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DATA_DISK_NAME spec: size: 10Gi storageClassName: STORAGE_CLASS_NAME
Ganti nilai berikut:
DATA_DISK_NAME
: nama yang Anda inginkan {i>disk<i} data Anda. Contoh ini menghasilkan disk10Gi
(10 gibibyte).STORAGE_CLASS_NAME
:StorageClass
yang Anda inginkan yang akan digunakan untukVirtualMachineDisk
.- Gunakan
kubectl get storageclass
untuk mencantumkan apa yang tersedia di cluster Anda.
- Gunakan
Simpan dan tutup manifes disk di editor Anda.
Buat disk menggunakan
kubectl
:kubectl apply -f my-data-disk.yaml
Gunakan
kubectl
untuk menghentikan VM sebelum Anda memasang disk virtual baru:kubectl virt stop VM_NAME
Edit resource VM Anda:
kubectl edit gvm VM_NAME
Perbarui manifes YAML
VirtualMachine
untuk memasang disk di akhir Bagianspec.disks
VM:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: ... disks: - boot: true virtualMachineDiskName: DISK_NAME - virtualMachineDiskName: DATA_DISK_NAME
Ganti
DATA_DISK_NAME
dengan nama disk yang Anda buat di langkah sebelumnya.Simpan dan tutup manifes VM yang telah diupdate di editor Anda.
Gunakan
kubectl
untuk memulai VM:kubectl virt start VM_NAME
Pembersihan
Untuk menghapus referensi yang dibuat dalam tutorial ini, selesaikan langkah-langkah berikut langkah:
Hapus VM Anda:
kubectl delete -f my-vm.yaml
Hapus resource
VirtualMachineDisk
Anda:kubectl delete -f my-data-disk.yaml kubectl delete -f my-disk.yaml
Jika Anda tidak ingin mempertahankan dependensi dasar dalam cluster, selesaikan langkah-langkah berikut:
Hapus jaringan virtual:
kubectl delete -f use-dhcp-network.yaml
Untuk menghapus driver CSI dari cluster, ikuti petunjuk dari Google Cloud Anda.