Tutorial ini memperkenalkan solusi siap pakai yang menggunakan Google Distributed Cloud (khusus software) di bare metal dan Config Sync untuk men-deploy cluster Kubernetes di edge dalam skala besar. Tutorial ini ditujukan untuk operator dan developer platform. Sebelum membaca dokumen ini, pastikan Anda memahami teknologi dan konsep berikut:
- Playbook Ansible.
- Deployment edge dan tantangannya.
- Cara menggunakan Google Cloud project.
- Men-deploy aplikasi web dalam container.
- Antarmuka command line
gcloud
dankubectl
.
Dalam tutorial ini, Anda menggunakan virtual machine (VM) Compute Engine untuk mengemulasi node yang di-deploy di edge, dan contoh aplikasi point-of-sale sebagai beban kerja edge. Google Distributed Cloud khusus software dan Config Sync menyediakan pengelolaan dan kontrol terpusat untuk cluster edge Anda. Config Sync secara dinamis menarik konfigurasi baru dari GitHub dan menerapkan kebijakan serta konfigurasi ini ke cluster Anda.
Arsitektur deployment edge
Deployment edge retail adalah cara yang baik untuk menggambarkan arsitektur yang digunakan dalam deployment cluster bare metal biasa.
Toko retail fisik adalah titik interaksi terdekat antara unit bisnis perusahaan dan konsumen. Sistem software di dalam toko harus menjalankan beban kerja, menerima update tepat waktu, dan melaporkan metrik penting secara terpisah dari sistem pengelolaan pusat perusahaan. Selain itu, sistem software ini harus didesain agar dapat diperluas ke lebih banyak lokasi toko pada masa mendatang. Meskipun semua deployment cluster bare metal memenuhi semua persyaratan ini untuk sistem software toko, profil edge memungkinkan kasus penggunaan penting: deployment di lingkungan dengan resource hardware terbatas, seperti bagian depan toko retail.
Diagram berikut menunjukkan deployment cluster bare metal yang menggunakan profil edge di toko retail:
Diagram di atas menunjukkan toko retail fisik yang umum. Toko memiliki perangkat smart seperti pembaca kartu, mesin point-of-sale, kamera, dan printer. Toko juga memiliki tiga perangkat keras komputasi fisik (berlabel Node 1
, Node 2
, dan Node 3
). Semua perangkat ini terhubung ke switch jaringan pusat. Dengan demikian, ketiga perangkat komputasi tersebut terhubung satu sama lain melalui jaringan Layer 2. Perangkat komputasi yang terhubung dalam jaringan membentuk infrastruktur bare metal. Software Google Distributed Cloud berjalan di dalam masing-masing
dari tiga perangkat komputasi. Perangkat ini juga memiliki penyimpanan disk sendiri dan dikonfigurasi untuk replikasi data di antara keduanya demi ketersediaan tinggi.
Diagram ini juga menunjukkan komponen utama berikut yang merupakan bagian dari deployment cluster bare metal:
Komponen yang ditandai sebagai MetalLB adalah load balancer yang dibundel.
Komponen Config Sync memungkinkan sinkronisasi status cluster dengan repositori sumber. Add-on opsional ini sangat direkomendasikan dan memerlukan penginstalan dan konfigurasi terpisah. Untuk mengetahui informasi selengkapnya tentang cara menyiapkan Config Sync dan nomenklatur yang berbeda, lihat dokumentasi Config Sync
Repositori root dan repositori namespace yang ditampilkan di bagian atas diagram di luar lokasi toko mewakili dua repositori sumber.
Perubahan pada cluster dikirim ke repositori sumber pusat ini. Deployment cluster di berbagai lokasi edge menarik update dari repositori sumber. Perilaku ini diwakili oleh panah yang menghubungkan dua repositori dalam diagram ke komponen Config Sync di dalam cluster yang berjalan di perangkat.
Komponen utama lain yang digambarkan sebagai bagian dari cluster adalah VM Runtime di GDC. VM Runtime di GDC memungkinkan menjalankan workload berbasis VM yang sudah ada di dalam cluster tanpa perlu melakukan containerisasi. Dokumentasi VM Runtime di GDC menjelaskan cara mengaktifkannya dan men-deploy workload VM Anda ke dalam cluster.
Komponen yang ditandai sebagai Aplikasi menunjukkan software yang di-deploy ke cluster oleh toko retail. Aplikasi point of sale yang terlihat di kios toko retail dapat menjadi salah satu contoh aplikasi tersebut.
Kotak di bagian bawah diagram mewakili banyak perangkat (seperti kios, tablet, atau kamera) di dalam toko retail, yang semuanya terhubung ke switch jaringan pusat. Jaringan lokal di dalam toko memungkinkan aplikasi yang berjalan di dalam cluster menjangkau perangkat ini.
Di bagian berikutnya, Anda akan melihat emulasi deployment toko retail ini di Google Cloud menggunakan VM Compute Engine. Emulasi ini adalah yang Anda gunakan dalam tutorial berikutnya untuk bereksperimen dengan cluster bare metal.
Deployment edge yang diemulasi di Google Cloud
Diagram berikut menggambarkan semua yang Anda siapkan di Google Cloud dalam tutorial ini. Diagram ini berkorelasi dengan diagram toko retail dari bagian sebelumnya. Deployment ini merepresentasikan lokasi edge yang diemulasi tempat aplikasi tempat penjualan di-deploy. Arsitektur juga menunjukkan beban kerja contoh aplikasi point of sale yang Anda gunakan dalam tutorial ini. Anda mengakses aplikasi tempat penjualan di dalam cluster dengan menggunakan browser web sebagai kios.
Tiga virtual machine (VM) Compute Engine dalam diagram sebelumnya merepresentasikan hardware fisik (atau node) di lokasi edge yang umum. Hardware ini akan dihubungkan dengan switch jaringan untuk membentuk infrastruktur bare metal. Di lingkungan yang diemulasi di Google Cloud, VM ini terhubung satu sama lain melalui jaringan Virtual Private Cloud (VPC) default di project Google Cloud .
Dalam penginstalan cluster bare metal yang umum, Anda dapat mengonfigurasi load balancer Anda sendiri. Namun, untuk tutorial ini, Anda tidak menyiapkan load balancer eksternal. Sebagai gantinya, Anda menggunakan load balancer MetalLB yang dibundel. Load balancer MetalLB yang dibundel memerlukan konektivitas jaringan Lapisan 2 antar-node. Dengan demikian, konektivitas Layer 2 antara VM Compute Engine diaktifkan dengan membuat jaringan overlay VxLAN di atas jaringan Virtual Private Cloud (VPC) default.
Dalam persegi panjang berlabel "Jaringan overlay L2 (VxLAN)", komponen software yang berjalan di dalam tiga VM Compute Engine ditampilkan. Persegi panjang VxLAN ini mencakup deployment cluster, yang berisi namespace Kubernetes di dalam cluster. Semua komponen di dalam namespace Kubernetes ini membentuk aplikasi point of sale yang di-deploy ke dalam cluster. Aplikasi point of sale memiliki tiga microservice: API Server, Inventory, dan Payments. Semua komponen ini bersama-sama merepresentasikan satu "aplikasi" yang ditampilkan dalam diagram arsitektur peluncuran Edge sebelumnya.
Load balancer MetalLB yang dibundel cluster tidak dapat dijangkau secara langsung dari luar VM. Diagram ini menunjukkan proxy terbalik NGINX yang dikonfigurasi untuk berjalan di dalam VM guna merutekan traffic yang masuk ke VM Compute Engine ke load balancer. Hal ini hanya merupakan solusi sementara untuk tujuan tutorial ini, di mana node tepi diemulasi menggunakan Google Cloud VM Compute Engine. Di lokasi tepi yang sebenarnya, hal ini dapat dilakukan dengan konfigurasi jaringan yang tepat.
Tujuan
- Gunakan VM Compute Engine untuk mengemulasi infrastruktur bare metal yang berjalan di lokasi edge.
- Gunakan Google Distributed Cloud untuk membuat cluster di infrastruktur edge yang diemulasi.
- Hubungkan dan daftarkan cluster dengan Google Cloud.
- Deploy workload aplikasi point-of-sale contoh di cluster.
- Gunakan konsol Google Cloud untuk memverifikasi dan memantau aplikasi point-of-sale yang beroperasi di lokasi edge.
- Gunakan Config Sync untuk mengupdate aplikasi point-of-sale yang berjalan di cluster.
Sebelum memulai
Di konsol Google Cloud , pada halaman pemilih project, pilih atau buat Google Cloud project.
Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project.
Instal dan lakukan inisialisasi Google Cloud CLI.
Lakukan fork dan clone repositori anthos-samples
Semua skrip yang digunakan dalam tutorial ini disimpan di repositori anthos-samples. Struktur folder di bagian
/anthos-bm-edge-deployment/acm-config-sink
disusun sesuai dengan yang diharapkan oleh Config Sync.
Clone repositori ini ke akun GitHub Anda sendiri sebelum melanjutkan ke langkah-langkah berikut.
Jika Anda belum memilikinya, buat akun di GitHub.
Buat token akses pribadi untuk digunakan dalam konfigurasi Config Sync. Hal ini diperlukan agar komponen Config Sync di cluster dapat melakukan autentikasi dengan akun GitHub Anda saat mencoba menyinkronkan perubahan baru.
- Pilih cakupan
public_repo
saja. - Simpan token akses yang Anda buat di tempat yang aman untuk digunakan nanti.
- Pilih cakupan
Lakukan fork repositori
anthos-samples
ke akun GitHub Anda sendiri:- Buka repositori anthos-samples.
- Klik ikon Fork di sudut kanan atas halaman.
- Klik akun pengguna GitHub yang ingin Anda buat fork repositorinya. Anda
akan otomatis dialihkan ke halaman dengan versi bercabang dari repositori
anthos-samples
.
Buka terminal di lingkungan lokal Anda.
Clone repositori yang di-fork dengan menjalankan perintah berikut, dengan GITHUB_USERNAME adalah nama pengguna untuk akun GitHub Anda:
git clone https://github.com/GITHUB_USERNAME/anthos-samples cd anthos-samples/anthos-bm-edge-deployment
Menyiapkan lingkungan workstation
Untuk menyelesaikan deployment edge yang dijelaskan dalam dokumen ini, Anda memerlukan satu workstation dengan akses ke Internet dan alat berikut yang diinstal:
- Docker
- Alat antarmuka command line envsubst (biasanya sudah diinstal di Linux dan OS mirip Unix lainnya)
Jalankan semua perintah dalam tutorial di workstation yang Anda konfigurasi di bagian ini.
Di workstation Anda, lakukan inisialisasi variabel lingkungan di instance shell baru:
export PROJECT_ID="PROJECT_ID" export REGION="us-central1" export ZONE="us-central1-a" # port on the admin Compute Engine instance you use to set up an nginx proxy # this allows to reach the workloads inside the cluster via the VM IP export PROXY_PORT="8082" # should be a multiple of 3 since N/3 clusters are created with each having 3 nodes export GCE_COUNT="3" # url to the fork of: https://github.com/GoogleCloudPlatform/anthos-samples export ROOT_REPO_URL="https://github.com/GITHUB_USERNAME/anthos-samples" # this is the username used to authenticate to your fork of this repository export SCM_TOKEN_USER="GITHUB_USERNAME" # access token created in the earlier step export SCM_TOKEN_TOKEN="ACCESS_TOKEN"
Ganti nilai berikut:
- PROJECT_ID: ID project Google Cloud Anda.
- GITHUB_USERNAME: nama pengguna GitHub Anda.
- ACCESS_TOKEN: token akses pribadi yang Anda buat untuk repositori GitHub Anda.
Pertahankan nilai default untuk variabel lingkungan lainnya. Hal ini dijelaskan di bagian berikutnya.
Di workstation Anda, lakukan inisialisasi Google Cloud CLI:
gcloud config set project "${PROJECT_ID}" gcloud services enable compute.googleapis.com gcloud config set compute/region "${REGION}" gcloud config set compute/zone "${ZONE}"
Di workstation Anda, buat Google Cloud akun layanan untuk instance Compute Engine. Skrip ini membuat file kunci JSON untuk akun layanan baru di
<REPO_ROOT>/anthos-bm-edge-deployment/build-artifacts/consumer-edge-gsa.json
. Skrip ini juga menyiapkan key ring dan kunci Cloud Key Management Service untuk enkripsi kunci pribadi SSH../scripts/create-primary-gsa.sh
Contoh berikut hanya sebagian dari skrip. Untuk melihat seluruh skrip, klik Lihat di GitHub.
Menyediakan instance Compute Engine
Di bagian ini, Anda akan membuat VM Compute Engine tempat Google Distributed Cloud khusus software akan diinstal. Anda juga memverifikasi konektivitas ke VM ini sebelum melanjutkan ke bagian penginstalan.
Di workstation Anda, buat kunci SSH yang digunakan untuk komunikasi antara instance Compute Engine:
ssh-keygen -f ./build-artifacts/consumer-edge-machine
Enkripsi kunci pribadi SSH menggunakan Cloud Key Management Service:
gcloud kms encrypt \ --key gdc-ssh-key \ --keyring gdc-ce-keyring \ --location global \ --plaintext-file build-artifacts/consumer-edge-machine \ --ciphertext-file build-artifacts/consumer-edge-machine.encrypted
Buat file konfigurasi lingkungan
.envrc
dan sumbernya. Setelah dibuat, periksa file.envrc
untuk memastikan variabel lingkungan telah diganti dengan nilai yang benar.envsubst < templates/envrc-template.sh > .envrc source .envrc
Berikut adalah contoh file
.envrc
yang dihasilkan dengan mengganti variabel lingkungan dalam filetemplates/envrc-template.sh
. Perhatikan bahwa baris yang diperbarui ditandai:Buat instance Compute Engine:
./scripts/cloud/create-cloud-gce-baseline.sh -c "$GCE_COUNT" | \ tee ./build-artifacts/gce-info
Menginstal cluster bare metal dengan Ansible
Skrip yang digunakan dalam panduan ini membuat cluster dalam grup yang terdiri dari tiga
instance Compute Engine. Jumlah cluster yang dibuat dikontrol oleh
variabel lingkungan GCE_COUNT
. Misalnya, Anda menetapkan variabel
lingkungan GCE_COUNT
ke 6
untuk membuat dua cluster dengan masing-masing 3
instance VM.
Secara default, variabel lingkungan GCE_COUNT
disetel ke 3
. Oleh karena itu, dalam panduan ini, satu cluster dengan 3
instance Compute Engine akan dibuat. Instance
VM diberi nama dengan awalan cnuc-
yang diikuti dengan angka. Instance VM
pertama dari setiap cluster bertindak sebagai workstation admin yang memicu
penginstalan. Cluster juga diberi nama yang sama dengan VM workstation admin (misalnya, cnuc-1
, cnuc-4
, cnuc-7
).
Playbook Ansible melakukan hal berikut:
- Mengonfigurasi instance Compute Engine dengan alat yang diperlukan, seperti
docker
,bmctl
,gcloud
, dannomos
. - Menginstal cluster bare metal di instance Compute Engine yang dikonfigurasi.
- Membuat cluster mandiri bernama
cnuc-1
. - Mendaftarkan cluster
cnuc-1
dengan Google Cloud. - Menginstal Config Sync ke cluster
cnuc-1
. - Mengonfigurasi Config Sync untuk menyinkronkan dengan konfigurasi cluster yang berada
di
anthos-bm-edge-deployment/acm-config-sink
di repositori yang di-fork. - Membuat
Login token
untuk cluster.
Selesaikan langkah-langkah berikut untuk menyiapkan dan memulai proses penginstalan:
Di workstation Anda, buat image Docker yang digunakan untuk penginstalan. Image ini memiliki semua alat yang diperlukan untuk proses penginstalan, seperti Ansible, Python, dan Google Cloud CLI.
gcloud builds submit --config docker-build/cloudbuild.yaml docker-build/
Jika build berhasil dijalankan, build akan menghasilkan output seperti berikut:
... latest: digest: sha256:99ded20d221a0b2bcd8edf3372c8b1f85d6c1737988b240dd28ea1291f8b151a size: 4498 DONE ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ID CREATE_TIME DURATION SOURCE IMAGES STATUS 2238baa2-1f41-440e-a157-c65900b7666b 2022-08-17T19:28:57+00:00 6M53S gs://my_project_cloudbuild/source/1660764535.808019-69238d8c870044f0b4b2bde77a16111d.tgz gcr.io/my_project/consumer-edge-install (+1 more) SUCCESS
Buat file inventaris Ansible dari template:
envsubst < templates/inventory-cloud-example.yaml > inventory/gcp.yaml
Jalankan skrip penginstalan yang memulai container Docker dari image yang dibuat sebelumnya. Secara internal, skrip menggunakan Docker untuk membuat container dengan pemasangan volume ke direktori kerja saat ini. Setelah berhasil menyelesaikan skrip ini, Anda harus berada di dalam container Docker yang dibuat. Anda memicu penginstalan Ansible dari dalam container ini.
./install.sh
Jika berhasil dijalankan, skrip akan menghasilkan output seperti berikut:
... Check the values above and if correct, do you want to proceed? (y/N): y Starting the installation Pulling docker install image... ============================== Starting the docker container. You will need to run the following 2 commands (cut-copy-paste) ============================== 1: ./scripts/health-check.sh 2: ansible-playbook all-full-install.yaml -i inventory 3: Type 'exit' to exit the Docker shell after installation ============================== Thank you for using the quick helper script! (you are now inside the Docker shell)
Dari dalam container Docker, verifikasi akses ke instance Compute Engine:
./scripts/health-check.sh
Jika berhasil dijalankan, skrip akan menghasilkan output seperti berikut:
... cnuc-2 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": false,"ping": "pong"} cnuc-3 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": false,"ping": "pong"} cnuc-1 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": false,"ping": "pong"}
Dari dalam container Docker, jalankan playbook Ansible untuk menginstal cluster bare metal di instance Compute Engine:
Setelah selesai, Anda akan melihat
Login Token
untuk cluster yang dicetak di layar.ansible-playbook all-full-install.yaml -i inventory | tee ./build-artifacts/ansible-run.log
Jika penginstalan berhasil dijalankan, outputnya akan terlihat seperti berikut:
... TASK [abm-login-token : Display login token] ************************************************************************** ok: [cnuc-1] => { "msg": "eyJhbGciOiJSUzI1NiIsImtpZCI6Imk2X3duZ3BzckQyWmszb09sZHFMN0FoWU9mV1kzOWNGZzMyb0x2WlMyalkifQ.eymljZS1hY2NvdW iZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImVkZ2Etc2EtdG9rZW4tc2R4MmQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2Nvd 4CwanGlof6s-fbu8" } skipping: [cnuc-2] skipping: [cnuc-3] PLAY RECAP *********************************************************************************************************** cnuc-1 : ok=205 changed=156 unreachable=0 failed=0 skipped=48 rescued=0 ignored=12 cnuc-2 : ok=128 changed=99 unreachable=0 failed=0 skipped=108 rescued=0 ignored=2 cnuc-3 : ok=128 changed=99 unreachable=0 failed=0 skipped=108 rescued=0 ignored=2
Login ke cluster di konsol Google Cloud
Setelah playbook Ansible berjalan hingga selesai, cluster mandiri akan diinstal di dalam VM Compute Engine. Cluster ini juga terdaftar ke Google Cloud, menggunakan Agen Connect. Namun, untuk melihat detail tentang cluster ini, Anda harus login ke cluster dari konsol Google Cloud .
Untuk login ke cluster, selesaikan langkah-langkah berikut:
Salin token dari output playbook Ansible di bagian sebelumnya.
Di konsol Google Cloud , buka halaman Kubernetes clusters dan gunakan token yang disalin untuk login ke cluster
cnuc-1
.Buka halaman cluster Kubernetes
- Dalam daftar cluster, klik
cnuc-1
, lalu klik Login.
Tindakan
di samping cluster - Pilih Token dan tempel token yang disalin.
- Klik Login.
- Dalam daftar cluster, klik
- Di konsol Google Cloud , buka halaman Config di bagian Features.
Di tab Paket, periksa kolom Status sinkronisasi di tabel cluster.
Verifikasi bahwa statusnya adalah Disinkronkan. Status Disinkronkan menunjukkan bahwa
Config Sync
telah berhasil menyinkronkan konfigurasi GitHub Anda dengan cluster
yang di-deploy, cnuc-1
.
Mengonfigurasi proxy untuk traffic eksternal
Cluster yang diinstal pada langkah sebelumnya menggunakan load balancer yang dipaketkan bernama
MetalLB. Layanan load balancer ini hanya dapat diakses melalui alamat IP Virtual Private Cloud (VPC). Untuk merutekan
traffic yang masuk melalui IP eksternalnya ke load balancer yang di-bundle, siapkan
layanan proxy terbalik di host admin (cnuc-1
). Layanan proxy terbalik ini
memungkinkan Anda menjangkau Server API aplikasi point of sale melalui
IP eksternal host admin (cnuc-1
).
Skrip penginstalan di langkah-langkah sebelumnya menginstal NGINX di host admin beserta file konfigurasi contoh. Perbarui file ini untuk menggunakan alamat IP layanan load balancer dan mulai ulang NGINX.
Di workstation Anda, gunakan SSH untuk login ke workstation admin:
ssh -F ./build-artifacts/ssh-config abm-admin@cnuc-1
Dari dalam workstation admin, siapkan reverse proxy NGINX untuk merutekan traffic ke layanan load balancer Server API. Dapatkan alamat IP layanan Kubernetes jenis Load balancer:
ABM_INTERNAL_IP=$(kubectl get services api-server-lb -n pos | awk '{print $4}' | tail -n 1)
Perbarui file konfigurasi template dengan alamat IP yang diambil:
sudo sh -c "sed 's/<K8_LB_IP>/${ABM_INTERNAL_IP}/g' \ /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf"
Mulai ulang NGINX untuk memastikan konfigurasi baru diterapkan:
sudo systemctl restart nginx
Periksa dan verifikasi status laporan server NGINX "active (running)":
sudo systemctl status nginx
Jika NGINX berhasil berjalan, output-nya akan terlihat seperti contoh berikut:
● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-09-17 02:41:01 UTC; 2s ago Docs: man:nginx(8) Process: 92571 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 92572 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 92573 (nginx) Tasks: 17 (limit: 72331) Memory: 13.2M CGroup: /system.slice/nginx.service ├─92573 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ├─92574 nginx: worker process ├─92575 nginx: worker process ├─92577 nginx: .... ... ...
Keluar dari sesi SSH ke workstation admin:
exit
Keluar dari sesi shell ke dalam container Docker. Setelah keluar dari instance admin, Anda masih berada di dalam container Docker yang digunakan untuk penginstalan:
exit
Mengakses aplikasi tempat penjualan
Dengan penyiapan proxy eksternal, Anda dapat mengakses aplikasi yang berjalan di dalam cluster. Untuk mengakses aplikasi point of sale contoh, selesaikan langkah-langkah berikut.
Di workstation Anda, dapatkan alamat IP eksternal instance Compute Engine admin dan akses UI aplikasi point of sale:
EXTERNAL_IP=$(gcloud compute instances list \ --project ${PROJECT_ID} \ --filter="name:cnuc-1" \ --format="get(networkInterfaces[0].accessConfigs[0].natIP)") echo "Point the browser to: ${EXTERNAL_IP}:${PROXY_PORT}"
Jika berhasil dijalankan, skrip akan menghasilkan output seperti berikut:
Point the browser to: 34.134.194.84:8082
Buka browser web Anda dan buka alamat IP yang ditampilkan di output perintah sebelumnya. Anda dapat mengakses dan menguji aplikasi contoh tempat penjualan, seperti yang ditunjukkan dalam screenshot contoh berikut:
Menggunakan Config Sync untuk memperbarui Server API
Aplikasi contoh dapat diupgrade ke versi yang lebih baru dengan memperbarui file konfigurasi di repositori root. Config Sync mendeteksi
update dan otomatis melakukan perubahan pada cluster Anda. Dalam contoh ini, repositori root adalah repositori anthos-samples
yang Anda clone di awal panduan ini. Untuk melihat cara aplikasi titik penjualan contoh dapat melalui deployment upgrade ke versi yang lebih baru, selesaikan langkah-langkah berikut.
Di workstation Anda, perbarui kolom
image
untuk mengubah versi Server API dariv1
menjadiv2
. Konfigurasi YAML untuk deployment ada di file dianthos-bm-edge-deployment/acm-config-sink/namespaces/pos/api-server.yaml
.Tambahkan, lakukan commit, dan kirim perubahan ke repositori yang Anda buat fork-nya:
git add acm-config-sink/namespaces/pos/api-server.yaml git commit -m "chore: updated api-server version to v2" git push
Di konsol Google Cloud , buka halaman Config Sync untuk memeriksa Status spesifikasi Konfigurasi. Verifikasi bahwa statusnya adalah Disinkronkan.
Di konsol Google Cloud , buka halaman Kubernetes Engine Workloads untuk memverifikasi bahwa Deployment telah diupdate.
Jika status Deployment adalah OK, arahkan browser Anda ke alamat IP dari bagian sebelumnya untuk melihat aplikasi point of sale. Perhatikan bahwa versi di judul menampilkan "V2", yang menunjukkan bahwa perubahan aplikasi Anda telah di-deploy, seperti yang ditunjukkan pada screenshot contoh berikut:
Anda mungkin harus melakukan refresh paksa pada tab browser untuk melihat perubahan.
Pembersihan
Untuk menghindari biaya yang tidak perlu, hapus resource yang digunakan untuk panduan ini setelah Anda selesai menggunakannya. Google Cloud Anda dapat menghapus resource ini secara manual, atau menghapus project Google Cloud , yang juga akan menghapus semua resource. Selain itu, Anda mungkin juga ingin menghapus perubahan yang dilakukan di workstation lokal:
Workstation lokal
File berikut harus diupdate untuk menghapus perubahan yang dilakukan oleh
skrip penginstalan.
- Hapus alamat IP VM Compute Engine yang ditambahkan ke file
/etc/hosts
. - Hapus konfigurasi SSH untuk
cnuc-*
di file~/.ssh/config
. - Hapus sidik jari VM Compute Engine dari file
~/.ssh/known_hosts
.
Hapus Project
Jika Anda membuat project khusus untuk prosedur ini, hapus Google Cloud project
dari konsol Google Cloud .
Manual
Jika Anda menggunakan project yang ada untuk prosedur ini, lakukan hal berikut:
- Membatalkan pendaftaran semua cluster Kubernetes dengan nama yang diawali dengan
cnuc-
. - Menghapus semua VM Compute Engine dengan nama yang diawali dengan
cnuc-
. - Hapus bucket Cloud Storage dengan nama yang diawali dengan
abm-edge-boot
. - Hapus Aturan Firewall
allow-pod-ingress
danallow-pod-egress
. - Hapus rahasia Secret Manager
install-pub-key
.
Apa langkah selanjutnya?
Anda dapat memperluas panduan ini dengan menambahkan lokasi tepi lainnya. Menetapkan variabel lingkungan
GCE_COUNT
ke 6
dan menjalankan kembali langkah-langkah yang sama dari
bagian sebelumnya akan membuat tiga instance Compute Engine baru
(cnuc-4
, cnuc-5
, cnuc-6
) dan cluster mandiri baru bernama cnuc-4
.
Anda juga dapat mencoba mengupdate konfigurasi cluster di repositori yang di-fork untuk menerapkan berbagai versi aplikasi tempat penjualan secara selektif ke dua cluster, cnuc-1
dan cnuc-4
, menggunakan ClusterSelectors.
Untuk mengetahui detail tentang setiap langkah dalam panduan ini dan skrip yang terlibat, lihat repositori anthos-samples.