Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Komponenty WebAssembly představují nový způsob vytváření a nasazování aplikací. Jsou navržené tak, aby byly přenosným cílem kompilace pro programovací jazyky a mohly běžet v různých prostředích. Komponenty WebAssembly jsou v izolovaném prostoru (sandbox) a zpřístupňují jejich funkce pomocí definovaných rozhraní. Komponenty se liší od kontejnerů tím, že jde o jednotlivé binární soubory, které jsou mnohem menší a rychleji se spouštějí. Vyhledejte úplný popis modelu a komponentu ve specifikaci.
wasmCloud je projekt CNCF (Cloud Native Computing Foundation), který je navržený tak, aby rychle sledoval vývoj, nasazení a orchestraci komponent WebAssembly. Tento dokument podrobně popisuje, jak nasadit wasmCloud v clusteru Azure Kubernetes Service (AKS).
Než začnete
- Tento článek předpokládá základní znalosti konceptů Kubernetes. Další informace najdete v tématu Základní koncepty Kubernetes pro Službu Azure Kubernetes Service (AKS).
- Potřebujete aktivní předplatné Azure. Pokud ho nemáte, vytvořte si bezplatný účet před tím, než začnete.
- Potřebujete cluster AKS. Pokud nemáte existující cluster, můžete ho vytvořit pomocí Azure CLI, Azure PowerShellu nebo webu Azure Portal.
- Musíte nainstalovat rozhraní příkazového řádku wasmCloud (wash) ve verzi 0.39.0 nebo novější. Možnosti instalace najdete v wasmcloud-cli.
Požadavky
- K nasazení wasmCloudu do clusteru AKS nemůžete použít Azure Portal.
Nasadit wasmCloud
Pokud chcete nasadit wasmCloud v clusteru AKS, musíte do clusteru nainstalovat Helm chart all-in-one. Tím se do jednoho oboru názvů nainstalují následující služby:
- NATS: NATS poskytuje páteř pro veškerou komunikaci mezi komponentami v wasmCloudu.
- wadm: Správce aplikací wasmCloud, jinak známý jako wadm je orchestrátor pro správu aplikací běžících na wasmCloudu.
- wasmCloud Operator: wasmCloud Operator je operátor Kubernetes, který spravuje životní cyklus hostitelů wasmCloud.
Doporučujeme nasadit wasmCloud do vyhrazeného prostoru názvů Kubernetes.
Vytvořte obor názvů pro wasmCloud pomocí
kubectl:kubectl create namespace wasmcloudNainstalujte NATS a wadm do oboru názvů wasmCloud pomocí příkazu
helm upgrade.# 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-updateVýstup z tohoto příkazu by měl vypadat nějak takto:
NAME: wasmcloud-platform LAST DEPLOYED: Thu Nov 7 14:58:54 2024 NAMESPACE: default STATUS: deployed REVISION: 1 NOTES:Počkejte, až všechny pody začnou používat
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-operatorSpuštění hostitele wasmCloud pomocí CRD a
kubectl:cat << EOF | kubectl apply -f - apiVersion: k8s.wasmcloud.dev/v1alpha1 kind: WasmCloudHostConfig metadata: name: wasmcloud-host spec: lattice: default version: "1.4.1" EOFOvěřte, že je hostitel wasmCloud spuštěný:
kubectl get pod -l app.kubernetes.io/instance=wasmcloud-hostVýstup by měl vypadat nějak takto:
NAME READY STATUS RESTARTS AGE wasmcloud-host-f9d67b8cf-lvsq6 2/2 Running 0 84sPomocí následujícího příkazu ověřte, že se můžete připojit k hostiteli wasmCloud:
washSpuštěním následujícího příkazu v samostatném prostředí přejděte na jeden ze spuštěných podů NATS:
kubectl port-forward nats-0 4222Tento příkaz přesměruje veškerý provoz na portu 4222 místně do podu NATS spuštěného ve vašem clusteru. Abyste se mohli připojit k wasmCloudu pomocí
wash, musíte mít tento port přeposlaný.V původním prostředí spusťte následující příkaz s
wash, abyste ověřili, že je váš hostitel wasmCloud spuštěný:wash get hostsVýstup by měl vypadat nějak takto:
Host ID Friendly name Uptime (seconds) ND2G4FRXLBCV3YL52OD4NRSS66Z5YOR3JOSL3Q7T5I6ZJM4EII3Y73CZ frosty-resonance-6227 312
Nasazení aplikace wasmCloud
Teď, když je wasmCloud spuštěný ve vašem clusteru AKS, můžete nasadit aplikaci wasmCloud. Aplikace wasmCloud je kolekce komponent WebAssembly, které jsou orchestrovány správcem aplikací wasmCloud (wadm).
Vytvořte soubor manifestu aplikace wasmCloud. Tento soubor popisuje komponenty, které tvoří vaši aplikaci. Uložte následující soubor yaml jako
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:8080Nasaďte aplikaci wasmCloud pomocí
wash:wash app deploy hello-world.yamlVýstup by měl vypadat nějak takto:
Deployed application "hello-world", version "01JC44TVDBC2V6MJ1NJTKNNX1J"Ověřte, že aplikace běží pomocí
wash:wash app status hello-worldVýstup by měl vypadat nějak takto:
Name Kind Status http_component SpreadScaler Deployed httpserver -(wasi:http)-> http_component LinkScaler Deployed httpserver SpreadScaler DeployedTento příkaz v případě potřeby opakujte, dokud nebudou všechny komponenty ve stavu
Deployed.Vyvolejte komponentu HTTP pomocí
curlakubectl port-forward:V samostatném prostředí spusťte následující příkaz pro přesměrování do
hello-worldaplikace.kubectl port-forward port-forward deployment/wasmcloud-host 8080Tento příkaz přesměruje veškerý provoz na portu 8080 místně na hostitele wasmCloud spuštěného ve vašem clusteru. Abyste se mohli připojit k wasmCloudu pomocí
curl, musíte mít tento port přeposlaný.V původním prostředí spusťte následující příkaz, který vyvolá komponentu HTTP:
curl http://localhost:8080Výstup by měl vypadat nějak takto:
Hello from Rust!Vyčistěte nainstalované prostředky
Pokud chcete vyčistit prostředky, které jste vytvořili, spusťte následující příkazy:
kubectl delete namespace wasmcloudTento příkaz odebere komponenty wasmCloud z clusteru AKS.
Další kroky
Můžete se i nadále učit podle úvodní příručky wasmCloud, která vás provede vytvořením komponenty WebAssembly od nuly pomocí různých funkcí wasmCloud a škálování aplikace.