Korzystanie z usługi OpenFaaS w u usługi AKS na platformie Azure Stack HCI

OpenFaaS to framework do tworzenia funkcji bez serwera za pomocą kontenerów. Projekt open source na dużą skalę w ramach społeczności. Ten dokument zawiera szczegółowe informacje na temat instalowania i używania technologii OpenFaas w klastrze Kubernetes uruchomionym w u Azure Stack HCI.

Wymagania wstępne

Aby wykonać kroki opisane w tym artykule, potrzebne są następujące elementy.

  • Podstawowa wiedza na temat kubernetes.
  • Usługa AKS w Azure Stack HCI klastra z co najmniej jednym węzłem procesu roboczego systemu Linux, który jest uruchomiony.
  • Skonfigurowano środowisko lokalne tak, kubectl aby wskazać usługę AKS w klastrze Azure Stack HCI klastra. Możesz użyć polecenia Get-AksHciCredential programu PowerShell, aby uzyskać dostęp do klastra przy użyciu polecenia kubectl .
  • Zainstalowany wiersz polecenia i wymagania wstępne dotyczące helm w wersji 3.
  • Interfejs wiersza polecenia platformy Azure może również służyć do uruchamiania poleceń, jeśli wolisz używać programu PowerShell.
  • Narzędzia wiersza polecenia usługi Git zainstalowane w systemie
  • Zainstaluj interfejs wiersza polecenia OpenFaaS. Zobacz dokumentację interfejsu wiersza polecenia openfaaS, aby uzyskać informacje o opcjach instalacji

Ważne

Program Helm jest przeznaczony do uruchamiania w węzłach systemu Linux. Jeśli w klastrze znajdują się węzły systemu Windows Server, upewnij się, że zasobniki programu Helm są zaplanowane do uruchamiania tylko w węzłach systemu Linux. Należy również upewnić się, że wszystkie zainstalowane wykresy helm są również zaplanowane do uruchamiania we właściwych węzłach. Polecenia w tym artykule używają selektorów węzłów, aby upewnić się, że zasobniki są zaplanowane dla odpowiednich węzłów, ale nie wszystkie wykresy programu Helm mogą uwidaczniać selektor węzłów. Możesz również rozważyć użycie innych opcji w klastrze, takich [jak taints](./adapt-apps-mixed-os-clusters.md#taints-and -tolerations).

Dodawanie repo z pakietem Helm OpenFaaS

Mając pod ręką plik kubeconfig, otwórz konsolę, aby rozpocząć proces wdrażania. Jeśli używasz systemu Windows, najłatwiejszym sposobem jest pobranie i uruchomienie powłoki Git Bash. Na początek openFaaS utrzymuje własne wykresy helm, aby być na bieżąco ze wszystkimi najnowszymi zmianami:

helm repo add openfaas https://openfaas.github.io/faas-netes/
helm repo update

Wdrażanie usługi OpenFaaS

Najlepszym rozwiązaniem jest to, że funkcje OpenFaaS i OpenFaaS powinny być przechowywane we własnej przestrzeni nazw Kubernetes.

Utwórz przestrzeń nazw dla systemu OpenFaaS i funkcji:

kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.yml

Wygeneruj hasło dla portalu interfejsu użytkownika OpenFaaS i interfejsu API REST:

# generate a random password
PASSWORD=$(head -c 12 /dev/urandom | shasum| cut -d' ' -f1)

kubectl -n openfaas create secret generic basic-auth \
--from-literal=basic-auth-user=admin \
--from-literal=basic-auth-password="$PASSWORD"

Wartość tajnego można uzyskać za pomocą echo $PASSWORD .

Hasło, które utworzymy w tym miejscu, będzie używane przez wykres helm w celu włączenia uwierzytelniania podstawowego w bramie OpenFaaS, które jest widoczne zewnętrznie za pośrednictwem usługi LoadBalancer.

Pakiet Helm dla openFaaS znajduje się w sklonowanym repozytorium. Użyj tego wykresu, aby wdrożyć usługę OpenFaaS w klastrze usługi AKS.

helm upgrade openfaas --install openfaas/openfaas \
    --namespace openfaas  \
    --set basic_auth=true \
    --set functionNamespace=openfaas-fn \
    --set serviceType=LoadBalancer

Dane wyjściowe:

NAME:   openfaas
LAST DEPLOYED: Fri May 14 18:35:47 2021
NAMESPACE: openfaas
STATUS: deployed
REVISION: 1
TEST SUITE: None

Aby sprawdzić, czy program OpenFaas został uruchomiony, uruchom następujące polecenie:

kubectl --namespace=openfaas get deployments -l "release=openfaas, app=openfaas"

Publiczny adres IP jest tworzony w celu uzyskania dostępu do bramy OpenFaaS. Aby pobrać ten adres IP, użyj polecenia kubectl get service. Przypisanie adresu IP do usługi może potrwać minutę.

kubectl get service -l component=gateway --namespace openfaas

Dane wyjściowe:

NAME               TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)          AGE
gateway            ClusterIP      10.110.205.41  <none>         8080/TCP         7m
gateway-external   LoadBalancer   10.107.51.110  192.168.0.152  8080:32029/TCP   7m

Aby przetestować system OpenFaaS, przejdź do zewnętrznego adresu IP na porcie 8080, http://192.168.0.152:8080 w tym przykładzie. Zostanie wyświetlony monit o zalogowanie. Aby pobrać hasło, wprowadź echo $PASSWORD .

Interfejs użytkownika OpenFaaS

Ustaw $OPENFAAS_URL wartość na wartość External-IP znalezioną powyżej.

Zaloguj się przy użyciu konsoli. Pamiętaj, że w przypadku uruchamiania polecenia Git Bash w systemie Windows może być konieczne użycie polecenia faas-cli zamiast ./faas-cli w poniższym poleceniu.

export OPENFAAS_URL=http://192.168.0.152:8080
echo -n $PASSWORD | ./faas-cli login -g $OPENFAAS_URL -u admin --password-stdin

Tworzenie pierwszej funkcji

Teraz, gdy openfaaS działa, utwórz funkcję przy użyciu portalu OpenFaas.

Kliknij pozycję Deploy New Function (Wd wdrażaj nową funkcję) i wyszukaj pozycję Figlet. Wybierz funkcję Figlet, a następnie kliknij pozycję Wd wdrażaj.

Zrzut ekranu przedstawia okno dialogowe Deploy A New Function (Wdrażanie nowej funkcji) z polem tekstowym w wierszu wyszukiwania.

Użyj curl, aby wywołać funkcję. Zastąp adres IP w poniższym przykładzie adresem bramy OpenFaas.

curl -X POST http://192.168.0.152:8080/function/figlet -d "Hello Azure"

Dane wyjściowe:

 _   _      _ _            _
| | | | ___| | | ___      / \    _____   _ _ __ ___
| |_| |/ _ \ | |/ _ \    / _ \  |_  / | | | '__/ _ \
|  _  |  __/ | | (_) |  / ___ \  / /| |_| | | |  __/
|_| |_|\___|_|_|\___/  /_/   \_\/___|\__,_|_|  \___|

Czyszczenie zasobów

Podczas wdrażania wykresu helm jest tworzona liczba zasobów kubernetes. Te zasoby obejmują zasobniki, wdrożenia i usługi. Aby wyczyścić te zasoby, użyj polecenia [helm uninstall][helm-cleanup] i określ nazwę wydania, jak po wcześniejszym helm list poleceniu.

helm uninstall openfaas

W poniższym przykładzie pokazano, że wydanie o nazwie openfaas zostało odinstalowane:

release "openfaas" uninstalled

Następne kroki

Z warsztatów OpenFaaS możesz nadal uczyć się dzięki zestawowi laboratoriów praktycznego, które obejmują tematy, takie jak tworzenie własnego bota usługi GitHub, korzystanie z wpisów tajnych, wyświetlanie metryk i automatyczne skalowanie.