Az OpenFaaS használata az Azure Kubernetes Service-ben (AKS)
Az OpenFaaS egy olyan keretrendszer, amely tárolókat használ kiszolgáló nélküli függvények létrehozásához. Nyílt forráskód projektként nagy léptékű bevezetést nyert a közösségen belül. Ez a dokumentum részletesen ismerteti az OpenFaas telepítését és használatát egy Azure Kubernetes Service- (AKS-) fürtön.
Mielőtt elkezdené
- Ez a cikk a Kubernetes-fogalmak alapszintű megértését feltételezi. További információkért tekintse meg az Azure Kubernetes Service (AKS) Kubernetes alapfogalmait.
- Aktív Azure-előfizetésre van szüksége. Ha még nincs előfizetése, hozzon létre egy ingyenes fiókot, mielőtt hozzákezd.
- Szüksége van egy AKS-fürtre. Ha nem rendelkezik meglévő fürttel, létrehozhat egyet az Azure CLI, az Azure PowerShell vagy az Azure Portal használatával.
- Telepítenie kell az OpenFaaS parancssori felületet. A telepítési lehetőségekről az OpenFaaS CLI dokumentációjában olvashat.
Az OpenFaaS helm-diagram adattárának hozzáadása
Lépjen az Azure Cloud Shellre.
Adja hozzá az OpenFaaS helm-diagram adattárát, és frissítsen a legújabb verzióra az alábbi
helm
parancsokkal.helm repo add openfaas https://openfaas.github.io/faas-netes/ helm repo update
Az OpenFaaS üzembe helyezése
Ajánlott eljárásként az OpenFaaS és az OpenFaaS függvényeket a saját Kubernetes-névterükben kell tárolni.
Hozzon létre egy névteret az OpenFaaS rendszer és függvények számára a
kubectl apply
parancs használatával.kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.yml
Hozzon létre egy jelszót az OpenFaaS felhasználói felületi portálhoz és a REST API-hoz az alábbi parancsokkal. A helm-diagram ezzel a jelszóval engedélyezi az alapszintű hitelesítést az OpenFaaS-átjárón, amely egy felhőbeli LoadBalanceren keresztül érhető el az interneten.
# 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"
Fontos
A felhasználónév és a jelszó használata a hitelesítéshez nem biztonságos minta. Ha rendelkezik OpenFaaS vállalati licenccel, javasoljuk, hogy inkább az Identity and Access Management (IAM) szolgáltatást használja az OpenFaaS-hez .
Kérje le a jelszó értékét az alábbi
echo
paranccsal.echo $PASSWORD
Helyezze üzembe az OpenFaaS-t az AKS-fürtben a
helm upgrade
paranccsal.helm upgrade openfaas --install openfaas/openfaas \ --namespace openfaas \ --set basic_auth=true \ --set functionNamespace=openfaas-fn \ --set serviceType=LoadBalancer
A kimenetnek a következő kondenzált példakimenethez hasonlóan kell kinéznie:
NAME: openfaas LAST DEPLOYED: Tue Aug 29 08:26:11 2023 NAMESPACE: openfaas STATUS: deployed ... NOTES: To verify that openfaas has started, run: kubectl --namespace=openfaas get deployments -l "release=openfaas, app=openfaas" ...
Létrejön egy nyilvános IP-cím az OpenFaaS-átjáró eléréséhez. Kérje le az IP-címet a
kubectl get service
paranccsal.kubectl get service -l component=gateway --namespace openfaas
A kimenetnek a következő példakimenethez hasonlóan kell kinéznie:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE gateway ClusterIP 10.0.156.194 <none> 8080/TCP 7m gateway-external LoadBalancer 10.0.28.18 52.186.64.52 8080:30800/TCP 7m
Tesztelje az OpenFaaS-rendszert a 8080-at tartalmazó port külső IP-címére való tallózással,
http://52.186.64.52:8080
ebben a példában, ahol a rendszer kéri a bejelentkezést. Az alapértelmezett felhasználó,admin
és a jelszó lekérhető a következő használatávalecho $PASSWORD
: .Állítsa be
$OPENFAAS_URL
a külső IP-cím URL-címét a 8080-s porton, és jelentkezzen be az Azure CLI-vel az alábbi parancsokkal.export OPENFAAS_URL=http://52.186.64.52:8080 echo -n $PASSWORD | ./faas-cli login -g $OPENFAAS_URL -u admin --password-stdin
Első függvény létrehozása
Nyissa meg az OpenFaaS-rendszert az OpenFaaS URL-címével.
Hozzon létre egy függvényt az OpenFaas portálon az Új függvény üzembe helyezése és a Figlet keresése lehetőség kiválasztásával.
Válassza ki a Figlet függvényt, majd válassza az Üzembe helyezés lehetőséget.
Hívja meg a függvényt az alábbi
curl
paranccsal. Győződjön meg arról, hogy az alábbi példában szereplő IP-címet az OpenFaaS-átjáró címére cseréli.curl -X POST http://52.186.64.52:8080/function/figlet -d "Hello Azure"
A kimenetnek a következő példakimenethez hasonlóan kell kinéznie:
_ _ _ _ _ | | | | ___| | | ___ / \ _____ _ _ __ ___ | |_| |/ _ \ | |/ _ \ / _ \ |_ / | | | '__/ _ \ | _ | __/ | | (_) | / ___ \ / /| |_| | | | __/ |_| |_|\___|_|_|\___/ /_/ \_\/___|\__,_|_| \___|
Második függvény létrehozása
Az Azure Cosmos DB-példány konfigurálása
Lépjen az Azure Cloud Shellre.
Hozzon létre egy új erőforráscsoportot az Azure Cosmos DB-példányhoz a
az group create
paranccsal.az group create --name serverless-backing --location eastus
Helyezzen üzembe egy Azure Cosmos DB-példányt
MongoDB
aaz cosmosdb create
paranccsal. Cserélje leopenfaas-cosmos
a saját egyedi példánynevét.az cosmosdb create --resource-group serverless-backing --name openfaas-cosmos --kind MongoDB
Kérje le az Azure Cosmos DB-adatbázist kapcsolati sztring, és tárolja egy változóban a
az cosmosdb keys list
parancs használatával. Győződjön meg arról, hogy az argumentum értékét az--resource-group
erőforráscsoport nevére, az argumentumot pedig--name
az Azure Cosmos DB-példány nevére cseréli.COSMOS=$(az cosmosdb keys list \ --type connection-strings \ --resource-group serverless-backing \ --name openfaas-cosmos \ --output tsv)
Töltse ki az Azure Cosmos DB-t tesztadatokkal egy elnevezett
plans.json
fájl létrehozásával és másolásával a következő JSON-fájlban.{ "name" : "two_person", "friendlyName" : "Two Person Plan", "portionSize" : "1-2 Person", "mealsPerWeek" : "3 Unique meals per week", "price" : 72, "description" : "Our basic plan, delivering 3 meals per week, which will feed 1-2 people.", "__v" : 0 }
A függvény létrehozása
Telepítse a MongoDB-eszközöket. Az alábbi példaparancs telepíti ezeket az eszközöket a brew használatával. További telepítési lehetőségekért tekintse meg a MongoDB dokumentációját.
brew install mongodb
Töltse be az Azure Cosmos DB-példányt adatokkal a mongoimport eszközzel.
mongoimport --uri=$COSMOS -c plans < plans.json
A kimenetnek a következő példakimenethez hasonlóan kell kinéznie:
2018-02-19T14:42:14.313+0000 connected to: localhost 2018-02-19T14:42:14.918+0000 imported 1 document
Hozza létre a függvényt a
faas-cli deploy
paranccsal. Győződjön meg arról, hogy az argumentum értékét-g
az OpenFaaS-átjáró címével frissíti.faas-cli deploy -g http://52.186.64.52:8080 --image=shanepeckham/openfaascosmos --name=cosmos-query --env=NODE_ENV=$COSMOS
Az üzembe helyezés után a kimenetnek a következő példakimenethez hasonlóan kell kinéznie:
Deployed. 202 Accepted. URL: http://52.186.64.52:8080/function/cosmos-query
Tesztelje a függvényt az alábbi
curl
paranccsal. Győződjön meg arról, hogy az IP-címet az OpenFaaS-átjáró címével frissíti.curl -s http://52.186.64.52:8080/function/cosmos-query
A kimenetnek a következő példakimenethez hasonlóan kell kinéznie:
[{"ID":"","Name":"two_person","FriendlyName":"","PortionSize":"","MealsPerWeek":"","Price":72,"Description":"Our basic plan, delivering 3 meals per week, which will feed 1-2 people."}]
Feljegyzés
A függvényt az OpenFaaS felhasználói felületén is tesztelheti:
Következő lépések
Folytassa a tanulást az OpenFaaS workshoptal, amely olyan gyakorlati tesztkörnyezeteket tartalmaz, amelyek olyan témaköröket fednek le, mint a saját GitHub-robot létrehozása, a titkos kódok felhasználása, a metrikák megtekintése és az automatikus skálázás.
Azure Kubernetes Service