Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Komponen WebAssembly adalah cara baru untuk membangun dan menyebarkan aplikasi. Mereka dirancang untuk menjadi target kompilasi portabel untuk bahasa pemrograman dan dapat berjalan di berbagai lingkungan. Komponen WebAssembly diisolasi secara desain dan mengekspos fungsionalitasnya menggunakan antarmuka yang ditentukan. Komponen berbeda dari kontainer karena mereka merupakan biner individu yang ukurannya jauh lebih kecil dan mulai lebih cepat. Temukan deskripsi lengkap model serta komponen yang ada dalam spesifikasi.
wasmCloud adalah proyek Cloud Native Computing Foundation (CNCF) yang dirancang untuk melacak cepat pengembangan, penyebaran, dan orkestrasi komponen WebAssembly. Dokumen ini merinci instruksi tentang cara menyebarkan wasmCloud pada kluster Azure Kubernetes Service (AKS).
Sebelum Anda mulai
- Artikel ini mengasumsikan pemahaman dasar tentang konsep Kube. Untuk informasi lebih, lihat konsep inti Kubernetes untuk Azure Kubernetes Service (AKS).
- Anda memerlukan langganan Azure aktif. Jika Anda tidak memilikinya, buat akun gratis sebelum memulai.
- Anda memerlukan kluster AKS. Jika Anda tidak memiliki kluster yang sudah ada, Anda dapat membuatnya menggunakan Azure CLI, Azure PowerShell, atau portal Azure.
- Anda perlu menginstal wasmCloud CLI (wash) pada versi 0.39.0 atau yang lebih baru. Untuk opsi penginstalan, lihat wasmcloud-cli.
Prasyarat
- Anda tidak dapat menggunakan portal Microsoft Azure untuk menyebarkan wasmCloud ke kluster AKS.
Menerapkan wasmCloud
Untuk menyebarkan wasmCloud pada kluster AKS, Anda perlu menginstal all-in-one Helm chart ke dalam kluster Anda. Ini menginstalasi layanan berikut ke dalam satu namespace:
- NATS: NATS menyediakan tulang punggung untuk semua komunikasi antar komponen di wasmCloud.
- wadm: WasmCloud Application Manager, atau dikenal sebagai wadm adalah orkestrator untuk mengelola aplikasi yang berjalan di atas wasmCloud.
- Operator wasmCloud: Operator wasmCloud adalah operator Kubernetes yang mengelola siklus hidup host wasmCloud.
Sebaiknya sebarkan wasmCloud ke dalam namespace Kubernetes khusus.
Buat namespace untuk wasmCloud menggunakan
kubectl:kubectl create namespace wasmcloudInstal NATS dan wadm ke namespace wasmCloud menggunakan
helm upgradeperintah :# By default, the chart installs NATS, Wadm, and wasmCloud Operator subcharts helm upgrade --install \ wasmcloud-platform \ --values https://raw.githubusercontent.com/wasmCloud/wasmcloud/main/charts/wasmcloud-platform/values.yaml \ oci://ghcr.io/wasmcloud/charts/wasmcloud-platform:0.1.2 \ --dependency-updateOutput dari perintah ini akan terlihat mirip dengan yang berikut ini:
NAME: wasmcloud-platform LAST DEPLOYED: Thu Nov 7 14:58:54 2024 NAMESPACE: default STATUS: deployed REVISION: 1 NOTES:Tunggu semua pod mulai menggunakan
kubectl:kubectl rollout status deploy,sts -l app.kubernetes.io/name=nats kubectl wait --for=condition=available --timeout=600s deploy -l app.kubernetes.io/name=wadm kubectl wait --for=condition=available --timeout=600s deploy -l app.kubernetes.io/name=wasmcloud-operatorMulai host wasmCloud menggunakan CRD dan
kubectl:cat << EOF | kubectl apply -f - apiVersion: k8s.wasmcloud.dev/v1alpha1 kind: WasmCloudHostConfig metadata: name: wasmcloud-host spec: lattice: default version: "1.4.1" EOFVerifikasi bahwa host wasmCloud sedang berjalan:
kubectl get pod -l app.kubernetes.io/instance=wasmcloud-hostOutput Anda akan terlihat mirip dengan yang berikut ini:
NAME READY STATUS RESTARTS AGE wasmcloud-host-f9d67b8cf-lvsq6 2/2 Running 0 84sVerifikasi bahwa Anda dapat terhubung ke host wasmCloud menggunakan
wash:Dalam shell terpisah, jalankan perintah berikut untuk melakukan port forwarding ke salah satu pod NATS yang aktif:
kubectl port-forward nats-0 4222Perintah ini meneruskan semua lalu lintas pada port 4222 secara lokal ke pod NATS yang berjalan di kluster Anda. Anda harus meneruskan port ini untuk terhubung ke wasmCloud menggunakan
wash.Di shell asli Anda, jalankan perintah berikut dengan
washuntuk memverifikasi bahwa host wasmCloud Anda sedang berjalan:wash get hostsOutput Anda akan terlihat mirip dengan yang berikut ini:
Host ID Friendly name Uptime (seconds) ND2G4FRXLBCV3YL52OD4NRSS66Z5YOR3JOSL3Q7T5I6ZJM4EII3Y73CZ frosty-resonance-6227 312
Menyebarkan aplikasi wasmCloud
Setelah wasmCloud berjalan di kluster AKS, Anda dapat menyebarkan aplikasi wasmCloud. Aplikasi wasmCloud adalah kumpulan komponen WebAssembly yang diorkestrasi oleh Manajer Aplikasi wasmCloud (wadm).
Buat file manifes aplikasi wasmCloud. File ini menjelaskan komponen yang terdiri dari aplikasi Anda. Simpan file yaml berikut sebagai
hello-world.yaml.apiVersion: core.oam.dev/v1beta1 kind: Application metadata: name: hello-world annotations: description: 'HTTP hello world demo in Rust, using the WebAssembly Component Model and WebAssembly Interfaces Types (WIT)' spec: components: - name: http-component type: component properties: image: ghcr.io/wasmcloud/components/http-hello-world-rust:0.1.0 traits: # Govern the spread/scheduling of the component - type: spreadscaler properties: instances: 1 # Add a capability provider that enables HTTP access - name: httpserver type: capability properties: image: ghcr.io/wasmcloud/http-server:0.23.2 traits: # Establish a unidirectional link from this http server provider (the "source") # to the `http-component` component (the "target") so the component can handle incoming HTTP requests, # # The source (this provider) is configured such that the HTTP server listens on 0.0.0.0:8080 - type: link properties: target: http-component namespace: wasi package: http interfaces: [incoming-handler] source_config: - name: default-http properties: address: 0.0.0.0:8080Sebarkan aplikasi wasmCloud menggunakan
wash:wash app deploy hello-world.yamlOutput Anda akan terlihat mirip dengan yang berikut ini:
Deployed application "hello-world", version "01JC44TVDBC2V6MJ1NJTKNNX1J"Verifikasi bahwa aplikasi berjalan menggunakan
wash:wash app status hello-worldOutput Anda akan terlihat mirip dengan yang berikut ini:
Name Kind Status http_component SpreadScaler Deployed httpserver -(wasi:http)-> http_component LinkScaler Deployed httpserver SpreadScaler DeployedUlangi perintah ini jika perlu hingga semua komponen berada dalam status
Deployed.Panggil komponen http menggunakan
curldankubectl port-forward:Di shell terpisah, jalankan perintah berikut untuk membuka port ke aplikasi
hello-worldkubectl port-forward port-forward deployment/wasmcloud-host 8080Perintah ini meneruskan semua lalu lintas pada port 8080 secara lokal ke host wasmCloud yang berjalan di kluster Anda. Anda harus meneruskan port ini untuk terhubung ke wasmCloud menggunakan
curl.Di shell asli Anda, jalankan perintah berikut untuk memanggil komponen http:
curl http://localhost:8080Output Anda akan terlihat mirip dengan yang berikut ini:
Hello from Rust!Membersihkan sumber daya yang terinstal
Untuk membersihkan sumber daya yang Anda buat, jalankan perintah berikut:
kubectl delete namespace wasmcloudPerintah ini menghapus komponen wasmCloud dari kluster AKS Anda.
Langkah berikutnya
Anda dapat terus belajar dengan mengikuti Panduan Mulai Cepat wasmCloud, yang memandu Anda dalam membuat komponen WebAssembly dari awal, menggunakan berbagai kemampuan wasmCloud, dan menskalakan aplikasi Anda.