OpenFaaS használata Azure Kubernetes Service (AKS) esetén

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.

Előkészületek

Az OpenFaaS helm-diagram adattárának hozzáadása

  1. Lépjen az Azure Cloud Shell.

  2. 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
    

OpenFaaS üzembe helyezése

Jó gyakorlat, hogy az OpenFaaS és az OpenFaaS függvényeket a saját Kubernetes-névterükben kell tárolni.

  1. Hozzon létre egy névteret az OpenFaaS rendszerhez és a függvényekhez a kubectl apply paranccsal.

    kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.yml
    
  2. 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"
    
  3. Kérje le a jelszó értékét az alábbi echo paranccsal.

    echo $PASSWORD
    
  4. Helyezze üzembe az OpenFaaS-t az AKS-fürtben az 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"
    ...
    
  5. 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
    
  6. Tesztelje az OpenFaaS-rendszert úgy, hogy a 8080-os porton található külső IP-címet böngészi, 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 használatával echo $PASSWORD.

    Képernyőkép az OpenFaaS felhasználói felületéről.

  7. Á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

  1. Nyissa meg az OpenFaaS-rendszert az OpenFaaS URL-címével.

  2. Hozzon létre egy függvényt az OpenFaas portálon a Deploy A New Function (Új függvény üzembe helyezése ) lehetőség kiválasztásával, és keressen rá a Figlet kifejezésre.

  3. Válassza a Figlet függvényt, majd válassza az Üzembe helyezés lehetőséget.

    Képernyőkép az Új függvény üzembe helyezése párbeszédpanelről, amelyen a szövegfüggvény látható a keresőmezőben.

  4. 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

  1. Lépjen az Azure Cloud Shell.

  2. 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
    
  3. Helyezzen üzembe egy típusú MongoDB Azure Cosmos DB-példányt a az cosmosdb create paranccsal. Cserélje le openfaas-cosmos a elemet a saját egyedi példánynevére.

    az cosmosdb create --resource-group serverless-backing --name openfaas-cosmos --kind MongoDB
    
  4. Kérje le az Azure Cosmos DB-adatbázist kapcsolati sztring, és tárolja azt egy változóban a az cosmosdb list paranccsal. Győződjön meg arról, hogy az argumentum értékét az --resource-group erőforráscsoport nevére, az --name argumentumot pedig az Azure Cosmos DB-példány nevére cseréli.

    COSMOS=$(az cosmosdb list-connection-strings \
      --resource-group serverless-backing \
      --name openfaas-cosmos \
      --query connectionStrings[0].connectionString \
      --output tsv)
    
  5. Töltse ki az Azure Cosmos DB-t tesztadatokkal egy nevű plans.json fájl létrehozásával és másolásával az alábbi jsonban.

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

  1. 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
    
  2. 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
    
  3. Hozza létre a függvényt a faas-cli deploy paranccsal. Győződjön meg arról, hogy frissíti az argumentum értékét az -g OpenFaaS-átjáró címével.

    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
    
  4. 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."}]
    

    Megjegyzés

    A függvényt az OpenFaaS felhasználói felületén is tesztelheti:

    Képernyőkép az OpenFaas felhasználói felületéről.

Következő lépések

Folytassa a tanulást az OpenFaaS workshoptal, amely gyakorlati tesztkörnyezeteket tartalmaz, amelyek olyan témaköröket tartalmaznak, 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.