Použití OpenFaaS v AKS na Azure Stack HCL

OpenFaaS je architektura pro sestavování funkcí bez serveru prostřednictvím použití kontejnerů. Jako otevřený zdrojový projekt získal v rámci komunity rozsáhlé přijetí. Tento dokument podrobně popisuje instalaci a používání OpenFaas v clusteru Kubernetes spuštěném v AKS v systému Azure Stack HCI.

Požadavky

K provedení kroků v tomto článku budete potřebovat následující.

  • Základní porozumění Kubernetes.
  • AKS na Azure Stack clusteru HCI s alespoň jedním pracovním uzlem pro Linux, který je v provozu.
  • Místní prostředí jste nakonfigurovali kubectl tak, aby odkazovalo na vaše AKS v clusteru HCI v Azure Stack. Pomocí příkazu PowerShellu Get-AksHciCredential můžete získat přístup ke clusteru pomocí nástroje .
  • Je nainstalovaný příkazový řádek Helm V3 a požadované součásti.
  • Azure CLI se dá použít taky ke spouštění příkazů, pokud to dáváte přednost prostředí PowerShell.
  • Nástroje příkazového řádku Git nainstalované v systému
  • Nainstalujte rozhraní příkazového řádku OpenFaaS. Možnosti instalace najdete v dokumentaci k rozhraní příkazového řádku OpenFaaS .

Důležité

Helm je určený ke spuštění na uzlech systému Linux. pokud máte v clusteru Windows uzly serveru, musíte zajistit, aby se Helm lusky spouštěly jenom na uzlech se systémem Linux. Také je potřeba zajistit, aby všechny Helm grafy, které nainstalujete, běžely taky na správných uzlech. V příkazech v tomto článku se používají selektory uzlů k tomu, aby byly lusky naplánovány na správné uzly, ale ne všechny Helm grafy mohou vystavit selektor uzlů. Můžete také zvážit použití dalších možností v clusteru, jako je například [chuti] (./Adapt-Apps-Mixed-OS-Clusters.MD # chuti-and-tolerovánes).

Přidání úložiště grafu OpenFaaS Helm

Pomocí souboru kubeconfig otevřete konzolu a spusťte proces nasazení. pokud pracujete na Windows, nejjednodušší způsob, jak postupovat, je stažení a spuštění Git Bash. Odtud od tohoto dne zahájí OpenFaaS své vlastní Helm grafy, které budou mít aktuální přehled o všech nejnovějších změnách:

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

Nasazení OpenFaaS

Osvědčeným postupem je, že funkce OpenFaaS a OpenFaaS by měly být uloženy ve vlastním oboru názvů Kubernetes.

Vytvoření oboru názvů pro OpenFaaS systém a funkce:

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

Vygenerujte heslo pro portál uživatelského rozhraní OpenFaaS a REST API:

# 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"

Hodnotu tajného kódu můžete získat pomocí echo $PASSWORD .

Heslo, které tady vytvoříte, bude používat graf Helm k povolení základního ověřování pro bránu OpenFaaS, která je vystavená externě prostřednictvím nástroje pro vyrovnávání zatížení.

Helm graf pro OpenFaaS je součástí klonovaného úložiště. Pomocí tohoto grafu nasaďte OpenFaaS do svého clusteru AKS.

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

Výstup:

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

Pokud chcete ověřit, že se OpenFaas spustil, spusťte následující příkaz:

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

Pro přístup k bráně OpenFaaS se vytvoří veřejná IP adresa. Pokud chcete načíst tuto IP adresu, použijte příkaz kubectl Get Service . Přiřazení IP adresy službě může trvat několik minut.

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

Výstup:

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

Chcete-li otestovat systém OpenFaaS, přejděte v tomto příkladu na externí IP adresu na portu 8080 http://192.168.0.152:8080 . Zobrazí se výzva, abyste se přihlásili. Pokud chcete načíst heslo, zadejte echo $PASSWORD .

Uživatelské rozhraní OpenFaaS

$OPENFAAS_URLV části externí IP adresa byla nalezena výše.

Přihlaste se pomocí konzoly. poznámka: pokud je v gitu Bash na Windows, možná budete muset použít faas-cli namísto/faas-cli v níže uvedeném příkazu.

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

Vytvořit první funkci

Teď, když je OpenFaaS funkční, vytvořte funkci pomocí portálu OpenFaas.

Klikněte na nasadit novou funkci a vyhledejte FIGlet. Vyberte funkci FIGlet a klikněte na nasadit.

Snímek obrazovky se zobrazí dialogové okno nasadit novou funkci s textem FIGlet na řádku pro hledání.

K vyvolání funkce použijte oblé. V následujícím příkladu nahraďte IP adresu bránou OpenFaas.

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

Výstup:

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

Vyčištění prostředků

Když nasadíte graf Helm, vytvoří se několik prostředků Kubernetes. Mezi tyto prostředky patří lusky, nasazení a služby. K vyčištění těchto prostředků použijte příkaz [Helm Uninstall] [Helm-Cleanup] a zadejte název verze, jak se nachází v předchozím helm list příkazu.

helm uninstall openfaas

Následující příklad ukazuje, že vydání s názvem openfaas bylo odinstalováno:

release "openfaas" uninstalled

Další kroky

pomocí sady praktických cvičení můžete pokračovat v učení s OpenFaaS workshopem, které pokrývají témata, jako je například vytvoření vlastního GitHub robota, používání tajných kódů, zobrazování metrik a automatické škálování.