Używanie usługi OpenFaaS z usługą AKS włączoną przez usługę Azure Arc
Dotyczy: usługa AKS w usłudze Azure Stack HCI 22H2, AKS w systemie Windows Server
OpenFaaS to struktura do tworzenia funkcji bezserwerowych przy użyciu kontenerów. Jako projekt open source zyskał wdrożenie na dużą skalę w społeczności. W tym artykule opisano instalowanie i używanie usługi OpenFaas w klastrze Kubernetes uruchomionym w usłudze AKS z włączoną usługą Azure Arc.
Wymagania wstępne
Aby wykonać kroki opisane w tym artykule, upewnij się, że masz następujące wymagania:
- Podstawowa wiedza na temat platformy Kubernetes.
- Klaster Kubernetes z co najmniej jednym węzłem roboczym systemu Linux, który jest uruchomiony.
- Środowisko lokalne
kubectl
jest skonfigurowane tak, aby wskazywało klaster. Aby uzyskać dostęp do klastra, możesz użyć polecenia Get-AksHciCredential programu PowerShell przy użyciu poleceniakubectl
. - Zainstalowano wiersz polecenia programu Helm w wersji 3 i wymagania wstępne.
- Możesz użyć interfejsu wiersza polecenia platformy Azure do uruchamiania poleceń, jeśli wolisz używać interfejsu wiersza polecenia platformy Azure do programu PowerShell.
- Narzędzia wiersza polecenia git są zainstalowane w systemie.
- Interfejs
OpenFaaS
wiersza polecenia jest zainstalowany. Aby uzyskać informacje o opcjach instalacji, zobacz dokumentację interfejsu wiersza polecenia platformy OpenFaaS.
Ważne
Program Helm jest przeznaczony do uruchamiania w węzłach systemu Linux. Jeśli klaster ma węzły systemu Windows Server, należy upewnić 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 programu Helm są zaplanowane do uruchamiania na odpowiednich węzłach. Polecenia w tym artykule używają selektorów węzłów , aby upewnić się, że zasobniki są zaplanowane do odpowiednich węzłów, ale nie wszystkie wykresy programu Helm uwidaczniają selektor węzłów. Możesz również użyć innych opcji, takich jak defekty, w klastrze.
Dodawanie repozytorium pakietu Helm openFaaS
Po udostępnieniu pliku kubeconfig otwórz konsolę, aby rozpocząć proces wdrażania. Jeśli korzystasz z systemu Windows, pobieranie i uruchamianie powłoki Git Bash jest najprostszym sposobem na wykonanie tych czynności. Od tego momentu, aby rozpocząć, 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 przechowywanie funkcji OpenFaaS i OpenFaaS we własnej przestrzeni nazw Kubernetes.
Twórca przestrzeni 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ść wpisu tajnego można uzyskać za pomocą polecenia echo $PASSWORD
.
Pakiet Helm używa utworzonego tutaj hasła, aby włączyć uwierzytelnianie podstawowe w bramie OpenFaaS, która jest uwidoczniona zewnętrznie za pośrednictwem modułu równoważenia obciążenia.
Pakiet Helm dla usługi OpenFaaS znajduje się w sklonowanym repozytorium. Użyj tego wykresu, aby wdrożyć rozwiązanie OpenFaaS w klastrze Kubernetes:
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 usługa OpenFaas została uruchomiona, uruchom następujące polecenie:
kubectl --namespace=openfaas get deployments -l "release=openfaas, app=openfaas"
Publiczny adres IP jest tworzony na potrzeby uzyskiwania dostępu do bramy OpenFaaS. Aby pobrać ten adres IP, użyj polecenia kubectl get usługi . 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 się. Aby pobrać hasło, wprowadź .echo $PASSWORD
Ustaw $OPENFAAS_URL
wartość external-IP znalezioną w tym przykładzie.
Zaloguj się przy użyciu konsoli. Jeśli uruchamiasz polecenia w powłoce GitBash w systemie Windows, może być konieczne użycie faas-cli
polecenia zamiast ./faas-cli
w następującym poleceniu:
export OPENFAAS_URL=http://192.168.0.152:8080
echo -n $PASSWORD | ./faas-cli login -g $OPENFAAS_URL -u admin --password-stdin
Twórca pierwsza funkcja
Teraz, gdy usługa OpenFaaS działa, utwórz funkcję przy użyciu portalu OpenFaaS.
Wybierz pozycję Wdróż nową funkcję i wyszukaj ciąg Figlet. Wybierz funkcję Figlet, a następnie kliknij przycisk Wdróż.
Użyj polecenia 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 programu Helm jest tworzonych wiele zasobów platformy Kubernetes. Te zasoby obejmują zasobniki, wdrożenia i usługi. Aby wyczyścić te zasoby, użyj helm uninstall
polecenia i określ nazwę wydania, jak znaleziono w poprzednim helm list
poleceniu:
helm uninstall openfaas
W poniższym przykładzie pokazano, że wersja o nazwie openfaas została odinstalowana:
release "openfaas" uninstalled
Następne kroki
Możesz kontynuować naukę na warsztatach OpenFaaS, korzystając z zestawu praktycznych laboratoriów, które obejmują takie tematy, jak tworzenie własnego bota usługi GitHub, korzystanie z wpisów tajnych, wyświetlanie metryk i automatyczne skalowanie.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla