Anda dapat mengaktifkan instance virtual machine (VM) apa pun agar dapat dijangkau dari jaringan eksternal atau organisasi lain, yang dikenal sebagai Ingress VM. Beban kerja VM dalam project organisasi dapat menjangkau jaringan eksternal atau VM saat ini yang diekspos ke layanan di organisasi lain, yang dikenal sebagai Egress VM.
Anda dapat menggunakan VirtualMachineExternalAccess
(VMEA) untuk mengontrol Ingress VM dan Egress VM secara bersamaan. Anda dapat menemukan alamat IP ingress dan egress yang telah diaktifkan untuk instance VM di Google Distributed Cloud (GDC) VMM API yang terisolasi atau melalui konsol GDC.
Sebelum memulai
Untuk menggunakan perintah antarmuka command line (CLI) gdcloud
, pastikan Anda telah mendownload, menginstal,
dan mengonfigurasi CLI gdcloud
.
Semua perintah untuk Distributed Cloud menggunakan CLI gdcloud
atau
kubectl
, dan memerlukan lingkungan sistem operasi (OS).
Mendapatkan jalur file kubeconfig
Untuk menjalankan perintah terhadap server Management API, pastikan Anda memiliki resource berikut:
Login dan buat file kubeconfig untuk server Management API jika Anda belum memilikinya.
Gunakan jalur ke file kubeconfig server Management API untuk menggantikan
MANAGEMENT_API_SERVER
dalam petunjuk ini.
Meminta izin dan akses
Untuk melakukan tugas yang tercantum di halaman ini, Anda harus memiliki peran Project VirtualMachine Admin. Ikuti langkah-langkah untuk
memverifikasi
bahwa Anda memiliki peran Project VirtualMachine Admin (project-vm-admin
) di namespace
project tempat VM berada.
Untuk operasi VM menggunakan konsol GDC atau gdcloud CLI, minta Admin IAM Project Anda untuk memberi Anda peran Project VirtualMachine Admin dan peran Project Viewer (project-viewer
).
Mengonfigurasi Akses Eksternal VM
VirtualMachineExternalAccess
(VMEA) mengontrol Ingress VM dan Egress VM.
VMEA tidak dapat mengontrol Ingress VM dan Egress VM secara terpisah. Ingress dan egress
VM harus diaktifkan atau dinonaktifkan bersamaan.
Anda dapat mengonfigurasi dan mengontrol VMEA dari UI atau dari Distributed Cloud VMM API. VM hanya dapat memiliki satu VMEA. Jika VM tidak memiliki VMEA, ingress dan egress akan dinonaktifkan secara default.
Mengaktifkan akses eksternal
Untuk mengaktifkan VM dengan akses eksternal untuk transfer data masuk dan transfer data keluar, Anda dapat mengonfigurasi VMEA dari konsol GDC atau Distributed Cloud Virtual Machine Manager API.
Secara default, traffic jaringan intra-project diizinkan, dan Anda dapat langsung mengakses VM di dalam project. Kebijakan jaringan memblokir semua traffic masuk ke VM dari luar project. Anda harus membuat kebijakan jaringan baru secara manual agar alamat IP sumber Anda dapat mengakses VM melalui transfer data masuk. Kebijakan jaringan ini dapat berupa kebijakan jaringan traffic lintas project atau kebijakan jaringan traffic lintas organisasi. Lokasi bergantung pada tempat Anda ingin mengakses VM.
Anda dapat mengaktifkan dan menonaktifkan akses eksternal VM dengan menentukan true
atau false
di kolom enabled
spesifikasi VMEA. Untuk Ingress VM, Anda dapat mengonfigurasi transfer data di port dengan menentukan nama, protokol, dan nomor port untuk setiap port yang ingin ditambahkan di kolom ports
spesifikasi VMEA.
Untuk mengaktifkan akses eksternal VM dengan membuat VMEA baru, selesaikan langkah-langkah berikut:
Konsol
- Selama proses pembuatan VM menggunakan Konsol, buka halaman Network details dari halaman Create VM instance.
- Temukan Jaringan di menu navigasi vertikal halaman.
- Centang Izinkan akses eksternal untuk mengaktifkan akses eksternal di VM.
API
Jalankan perintah berikut:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -n PROJECT -f - <<EOF
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineExternalAccess
metadata:
name: VM_NAME
spec:
enabled: true
ports:
- name: PORT_NAME
protocol: PROTOCOL
port: PORT_NUMBER
EOF
Ganti variabel berikut:
- MANAGEMENT_API_SERVER: file kubeconfig ke server Management API.
- VM_NAME: nama VM Anda.
- PORT_NAME: nama port.
- PROTOCOL: protokol yang Anda inginkan untuk digunakan oleh layanan ingress. Nama protokol harus ditulis dengan huruf kapital dan merupakan protokol yang didukung Kubernetes, seperti
TCP
,UDP
, atauSCTP
. - PORT_NUMBER: nomor port.
Untuk mengaktifkan akses eksternal VM dengan mengedit VMEA yang ada melalui VMM API, jalankan perintah berikut:
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT
Menonaktifkan akses eksternal
Jika VM tidak memiliki VMEA yang sesuai, ingress dan egress akan dinonaktifkan. Jika VM memiliki VMEA yang sesuai, Anda dapat menonaktifkan VMEA dengan
menyetel kolom enabled
ke false
atau menghapus VMEA secara langsung. Anda dapat melakukan
operasi ini melalui Distributed Cloud VMM API.
Untuk menonaktifkan akses eksternal, selesaikan langkah-langkah berikut:
API
Nonaktifkan akses eksternal dengan menghapus VMEA:
kubectl --kubeconfig MANAGEMENT_API_SERVER delete virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT
Ganti kode berikut:
- MANAGEMENT_API_SERVER: file kubeconfig ke server Management API.
- VM_NAME: nama VM.
- PROJECT: project Distributed Cloud tempat VM berada.
Menonaktifkan akses eksternal dengan mengedit VMEA:
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT
Perbarui kolom enabled
menjadi false
.
Masuk
Melihat alamat IP Ingress
Jika VM diaktifkan dengan Ingress, alamat IP ingress akan ditampilkan di konsol GDC setelah pembuatan. Anda juga dapat menemukan alamat IP ingress ini dari halaman VM details di konsol GDC.
Untuk mengambil alamat IP, gunakan Distributed Cloud VMM API. Selesaikan langkah-langkah berikut:
API
Ambil alamat IP:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT -ojsonpath='{.status.ingressIP}'
Untuk VM dengan sistem operasi (OS) yang berbeda, gunakan perintah ssh
untuk
memasuki VM dengan alamat IP ingress dengan port yang telah Anda aktifkan dengan
TCP.
Mengedit Ingress
Setelah mengaktifkan VMEA untuk VM, Anda dapat menyesuaikan ingress dengan mengedit
VMEA. Anda dapat mengedit spesifikasi ingress VM secara langsung dari
konsol GDC. Anda juga dapat menggunakan kubectl
CLI untuk mengedit ingress VM
dari spesifikasi VMEA.
Untuk mengedit VMEA guna menyesuaikan ingress, selesaikan langkah-langkah berikut:
Misalnya, gunakan perintah berikut untuk menambahkan port PORT_NUMBER pada ingress VM yang ada menggunakan protokol TCP:
Konsol
Edit port secara langsung di layanan VM Ingress dari konsol GDC:
- Di menu navigasi vertikal, klik Instances.
- Di halaman tersebut, scroll ke Detail jaringan.
Klik ikon edit di Ingress Ports untuk mengedit port ingress.
API
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT --type "json" -p '[{"op":"add","path":"/spec/ports/-","value": {"name":"PORT_NAME","port":PORT_NUMBER, "Protocol":"TCP"}}]'
Ganti kode berikut:
- MANAGEMENT_API_SERVER: file kubeconfig ke server Management API.
- VM_NAME: nama VM.
- PROJECT: project Distributed Cloud tempat VM berada.
- PORT_NAME: nama port yang akan ditambahkan.
- PORT_NUMBER: nomor port.
Mengaktifkan Ingress dengan protokol non-TCP
Distributed Cloud memungkinkan Anda mengaktifkan Ingress VM dengan protokol yang berbeda. Secara default, layanan VM Ingress menggunakan protokol TCP. Anda dapat menambahkan ingress protokol non-TCP Anda sendiri untuk VM Anda. Distributed Cloud mendukung protokol berikut:
- Transmission Control Protocol (TCP).
- User datagram protocol (UDP).
- Stream control transmission protocol (SCTP).
Anda dapat mengaktifkan transfer data dengan protokol non-TCP dengan menentukan nama protokol yang berbeda saat membuat VMEA.
Keluar
Beban kerja VM dalam project organisasi dapat menjangkau jaringan eksternal, atau diekspos ke layanan di organisasi lain. Jika Anda mengaktifkan transfer data keluar untuk VM, Anda akan melihat alamat IP keluar yang dibuat. VM terhubung ke layanan eksternal dengan alamat IP ini.
Untuk melakukan transfer data alamat IP ini keluar dari jaringan eksternal, Anda mungkin perlu menerapkan kebijakan jaringan project. Untuk mengetahui informasi selengkapnya, lihat Kebijakan jaringan traffic keluar lintas organisasi.
Melihat alamat IP Egress
Jika VM diaktifkan dengan Egress, alamat IP egress akan ditampilkan di konsol GDC setelah pembuatan. Anda juga dapat menemukan alamat IP keluar ini dari halaman detail VM.
Untuk melihat alamat IP keluar, selesaikan langkah-langkah berikut:
API
Ambil alamat IP:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT -ojsonpath='{.status.egressIP}'
Ganti kode berikut:
- MANAGEMENT_API_SERVER: file kubeconfig ke server Management API.
- VM_NAME: nama VM.
- PROJECT: project Distributed Cloud tempat VM berada.
Egress VM didasarkan pada project. VM dalam project yang sama berisi alamat IP Egress yang sama.
Mengontrol Traffic Keluar
Pada versi Distributed Cloud sebelumnya, Anda harus memulai ulang VM untuk mencerminkan perubahan keluar pada VM yang sedang berjalan. Di versi 1.11, Anda dapat mengaktifkan dan menonaktifkan keluar VM tanpa memulai ulang VM. Perubahan ini akan berlaku tepat setelah Anda memperbarui VMEA.