Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Składniki zestawu WebAssembly to nowy sposób tworzenia i wdrażania aplikacji. Są one przeznaczone do przenośnej kompilacji docelowej dla języków programowania i mogą być uruchamiane w różnych środowiskach. Składniki zestawu WebAssembly są projektowane w trybie piaskownicy i uwidaczniają ich funkcjonalność przy użyciu zdefiniowanych interfejsów. Składniki różnią się od kontenerów, ponieważ pojedyncze pliki binarne są znacznie mniejsze i szybsze do uruchomienia. Znajdź pełny opis modelu i dowiedz się, czym jest składnik w specyfikacji.
wasmCloud to projekt Cloud Native Computing Foundation (CNCF) zaprojektowany w celu przyspieszenia tworzenia, wdrażania i zarządzania orkiestracją składników WebAssembly. Ten dokument zawiera szczegółowe instrukcje dotyczące wdrażania usługi wasmCloud w klastrze usługi Azure Kubernetes Service (AKS).
Zanim rozpoczniesz
- Artykuł zakłada podstawową znajomość pojęć związanych z Kubernetes. Aby uzyskać więcej informacji, zobacz temat Kubernetes core concepts for Azure Kubernetes Service (AKS) (Kubernetes — podstawowe pojęcia dotyczące usługi Azure Kubernetes Service (AKS)).
- Potrzebna jest aktywna subskrypcja platformy Azure. Jeśli nie masz subskrypcji, przed rozpoczęciem utwórz bezpłatne konto.
- Potrzebny jest klaster usługi AKS. Jeśli nie masz istniejącego klastra, możesz go utworzyć przy użyciu interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell lub witryny Azure Portal.
- Musisz zainstalować interfejs wiersza polecenia wasmCloud (wash) w wersji 0.39.0 lub nowszej. Aby uzyskać opcje instalacji, zobacz wasmcloud-cli.
Wymagania wstępne
- Nie można użyć witryny Azure Portal do wdrożenia usługi wasmCloud w klastrze usługi AKS.
Wdrażanie usługi wasmCloud
Aby wdrożyć usługę wasmCloud w klastrze AKS, należy zainstalować konfigurację „all-in-one” Helm w klastrze. Spowoduje to zainstalowanie następujących usług w jednej przestrzeni nazw:
- NATS: USŁUGA NATS zapewnia szkielet dla całej komunikacji między składnikami w usłudze wasmCloud.
- wadm: wasmCloud Application Manager, inaczej znany jako wadm jest koordynatorem do zarządzania aplikacjami działającymi na bazie wasmCloud.
- wasmCloud Operator: wasmCloud Operator jest Kubernetes operatorem, który zarządza cyklem życia hostów wasmCloud.
Zalecamy wdrożenie wasmCloud w dedykowanej przestrzeni nazw Kubernetes.
Utwórz przestrzeń nazw dla usługi wasmCloud przy użyciu polecenia
kubectl:kubectl create namespace wasmcloudZainstaluj NATS i wadm w przestrzeni nazw wasmCloud, używając polecenia
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-updateDane wyjściowe tego polecenia powinny wyglądać podobnie do następujących:
NAME: wasmcloud-platform LAST DEPLOYED: Thu Nov 7 14:58:54 2024 NAMESPACE: default STATUS: deployed REVISION: 1 NOTES:Poczekaj na rozpoczęcie korzystania ze
kubectlwszystkich zasobników: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-operatorUruchom hosta wasmCloud przy użyciu crd i
kubectl:cat << EOF | kubectl apply -f - apiVersion: k8s.wasmcloud.dev/v1alpha1 kind: WasmCloudHostConfig metadata: name: wasmcloud-host spec: lattice: default version: "1.4.1" EOFSprawdź, czy host wasmCloud jest uruchomiony:
kubectl get pod -l app.kubernetes.io/instance=wasmcloud-hostDane wyjściowe powinny wyglądać podobnie do następujących:
NAME READY STATUS RESTARTS AGE wasmcloud-host-f9d67b8cf-lvsq6 2/2 Running 0 84sSprawdź, czy możesz nawiązać połączenie z hostem wasmCloud przy użyciu polecenia
wash:W oddzielnej powłoce uruchom następujące polecenie, aby przekierować port do jednego z działających podów NATS.
kubectl port-forward nats-0 4222To polecenie przekazuje cały ruch na porcie 4222 lokalnie do podu NATS uruchomionego w klastrze. Aby nawiązać połączenie z usługą wasmCloud za pomocą
wash, musisz mieć przekierowany ten port.W oryginalnej powłoce uruchom następujące polecenie za pomocą
wash, aby sprawdzić, czy host wasmCloud działa:wash get hostsDane wyjściowe powinny wyglądać podobnie do następujących:
Host ID Friendly name Uptime (seconds) ND2G4FRXLBCV3YL52OD4NRSS66Z5YOR3JOSL3Q7T5I6ZJM4EII3Y73CZ frosty-resonance-6227 312
Wdrażanie aplikacji wasmCloud
Teraz, gdy usługa wasmCloud działa w klastrze usługi AKS, możesz wdrożyć aplikację wasmCloud. Aplikacja wasmCloud to kolekcja składników zestawu WebAssembly, które są orkiestrowane przez menedżera aplikacji wasmCloud (wadm).
Utwórz plik manifestu aplikacji wasmCloud. W tym pliku opisano składniki wchodzące w skład aplikacji. Zapisz następujący plik 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:8080Wdróż aplikację wasmCloud przy użyciu polecenia
wash:wash app deploy hello-world.yamlDane wyjściowe powinny wyglądać podobnie do następujących:
Deployed application "hello-world", version "01JC44TVDBC2V6MJ1NJTKNNX1J"Sprawdź, czy aplikacja jest uruchomiona przy użyciu polecenia
wash:wash app status hello-worldDane wyjściowe powinny wyglądać podobnie do następujących:
Name Kind Status http_component SpreadScaler Deployed httpserver -(wasi:http)-> http_component LinkScaler Deployed httpserver SpreadScaler DeployedPowtórz to polecenie, jeśli to konieczne, dopóki wszystkie składniki nie znajdą się w stanie
Deployed.Wywołaj składnik http przy użyciu poleceń
curlikubectl port-forward:W oddzielnej powłoce uruchom następujące polecenie, aby przekierować port dla aplikacji
hello-worldkubectl port-forward port-forward deployment/wasmcloud-host 8080To polecenie przekazuje cały ruch na porcie 8080 lokalnie do hosta wasmCloud uruchomionego w klastrze. Aby nawiązać połączenie z usługą wasmCloud za pomocą
curl, musisz mieć przekierowany ten port.Uruchom w swoim terminalu następujące polecenie, aby wywołać składnik http:
curl http://localhost:8080Dane wyjściowe powinny wyglądać podobnie do następujących:
Hello from Rust!Czyszczenie zainstalowanych zasobów
Aby wyczyścić utworzone zasoby, uruchom następujące polecenia:
kubectl delete namespace wasmcloudTo polecenie usuwa składniki wasmCloud z klastra AKS.
Następne kroki
Możesz kontynuować naukę, postępując zgodnie z przewodnikiem Szybki start usługi wasmCloud, który przeprowadzi Cię przez proces tworzenia składnika WebAssembly od podstaw, korzystając z różnych możliwości usługi wasmCloud i skalowania aplikacji.