Share via


Använda OpenFaaS med AKS aktiverat av Azure Arc

Gäller för: AKS på Azure Stack HCI 22H2, AKS på Windows Server

OpenFaaS är ett ramverk för att skapa serverlösa funktioner med hjälp av containrar. Som ett öppen källkod projekt fick det storskaligt införande inom samhället. I den här artikeln beskrivs hur du installerar och använder OpenFaas i ett Kubernetes-kluster som körs på AKS som aktiveras av Azure Arc.

Förutsättningar

Kontrollera att du har följande krav för att kunna slutföra stegen i den här artikeln:

Viktigt

Helm är avsett att köras på Linux-noder. Om klustret har Windows Server-noder måste du se till att Helm-poddar är schemalagda att endast köras på Linux-noder. Du måste också se till att alla Helm-diagram som du installerar är schemalagda att köras på rätt noder. Kommandona i den här artikeln använder nodväljare för att se till att poddar är schemalagda till rätt noder, men inte alla Helm-diagram exponerar en nodväljare. Du kan också använda andra alternativ, till exempel taints, i klustret.

Lägg till Lagringsplatsen för OpenFaaS Helm-diagram

När kubeconfig-filen är tillgänglig öppnar du konsolen för att starta distributionsprocessen. Om du kör i Windows är det enklast att ladda ned och köra Git Bash. Därifrån, till att börja med, har OpenFaaS sina egna Helm-diagram för att hålla sig uppdaterade med alla de senaste ändringarna:

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

Distribuera OpenFaaS

Vi rekommenderar att funktionerna OpenFaaS och OpenFaaS lagras i sitt eget Kubernetes-namnområde.

Skapa ett namnområde för OpenFaaS-systemet och funktionerna:

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

Generera ett lösenord för OpenFaaS-användargränssnittsportalen och REST-API:et:

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

Du kan hämta värdet för hemligheten med echo $PASSWORD.

Helm-diagrammet använder lösenordet du skapar här för att aktivera grundläggande autentisering på OpenFaaS Gateway, som exponeras externt via en lastbalanserare.

Ett Helm-diagram för OpenFaaS ingår i den klonade lagringsplatsen. Använd det här diagrammet för att distribuera OpenFaaS i ditt Kubernetes-kluster:

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

Utdata:

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

Kontrollera att OpenFaas har startats genom att köra följande kommando:

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

En offentlig IP-adress skapas för åtkomst till OpenFaaS-gatewayen. Om du vill hämta den här IP-adressen använder du kommandot kubectl get service . Det kan ta en minut innan IP-adressen tilldelas till tjänsten:

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

Utdata:

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

Om du vill testa OpenFaaS-systemet bläddrar du till den externa IP-adressen på port 8080 – http://192.168.0.152:8080 i det här exemplet. Du uppmanas att logga in. Om du vill hämta ditt lösenord anger du echo $PASSWORD.

OpenFaaS-användargränssnitt

Ange $OPENFAAS_URL till external-IP som finns i det här exemplet.

Logga in med konsolen. Om du kör kommandon i GitBash i Windows kan du behöva använda faas-cli i stället för ./faas-cli i följande kommando:

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

Skapa första funktionen

Nu när OpenFaaS fungerar skapar du en funktion med hjälp av OpenFaaS-portalen.

Välj Distribuera ny funktion och sök efter Figlet. Välj funktionen Figlet och klicka sedan på Distribuera.

Skärmbild som visar dialogrutan Distribuera en ny funktion i OpenFAAS med

Använd curl för att anropa funktionen. Ersätt IP-adressen i följande exempel med adressen för din OpenFaaS-gateway.

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

Utdata:

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

Rensa resurser

När du distribuerar ett Helm-diagram skapas många Kubernetes-resurser. Dessa resurser omfattar poddar, distributioner och tjänster. Om du vill rensa dessa resurser använder du helm uninstall kommandot och anger ditt versionsnamn, som du hittade i föregående helm list kommando:

helm uninstall openfaas

I följande exempel visas att versionen med namnet openfaas har avinstallerats:

release "openfaas" uninstalled

Nästa steg

Du kan fortsätta att lära dig med OpenFaaS-workshopen genom en uppsättning praktiska labbuppgifter som beskriver ämnen som hur du skapar en egen GitHub-robot, använder hemligheter, visar mått och automatisk skalning.