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:
- En grundläggande förståelse för Kubernetes.
- Ett Kubernetes-kluster med minst en Linux-arbetsnod som är igång.
- Din lokala
kubectl
miljö är konfigurerad för att peka på klustret. Du kan använda PowerShell-kommandot Get-AksHciCredential för att komma åt klustret med .kubectl
- Helm v3-kommandoraden och kraven är installerade.
- Du kan använda Azure CLI för att köra kommandon om du föredrar Azure CLI än PowerShell.
- Git-kommandoradsverktyg installeras i systemet.
OpenFaaS
CLI är installerat. Installationsalternativ finns i OpenFaaS CLI-dokumentationen.
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
.
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.
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.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för