OpenFaaS használata az AKS-Azure Stack HCI

Az OpenFaaS egy keretrendszer a kiszolgáló nélküli függvények tárolók használatával való építéséhez. Nyílt forráskódú projektként nagy léptékű bevezetésére tett szert a közösségben. Ez a dokumentum az OpenFaas AKS-on futó Kubernetes-fürtön való telepítését és Azure Stack HCI.

Előfeltételek

A cikkben található lépések befejezéséhez a következőkre lesz szüksége.

  • A Kubernetes alapszintű ismerete.
  • Egy AKS a Azure Stack HCI fürtön, amely legalább egy linuxos munkavégző csomóponttal működik.
  • Úgy konfigurálta a helyi környezetet, hogy az kubectl az AKS-Azure Stack HCI mutasson. A Get-AksHciCredential PowerShell-paranccsal elérheti a fürtöt a használatával.
  • Helm v3 parancssor és telepített előfeltételek.
  • Az Azure CLI-t parancsok futtatására is használhatja, ha ezt részesíti előnyben a PowerShell-hez.
  • A rendszerre telepített Git parancssori eszközök
  • Telepítse az OpenFaaS CLI-t. A telepítési lehetőségekért tekintse meg az OpenFaaS CLI dokumentációját

Fontos

A Helm Linux-csomópontokon való futtatásra szolgál. Ha kiszolgáló-Windows található a fürtben, győződjön meg arról, hogy a Helm-podok csak Linux-csomópontokon való futtatásra vannak ütemezve. Arról is gondoskodnia kell, hogy a rendszer a telepítve lévő Helm-diagramokat is a megfelelő csomópontokon futtassa. A cikkben található parancsok node-selectors használatával győződnek meg arról, hogy a podok a megfelelő csomópontokra vannak ütemezve, de nem minden Helm-diagram teszi elérhetővé a csomópontválasztót. A fürtön más lehetőségeket is választhat, például [taints](./adapt-apps-mixed-os-clusters.md#taints-and -tolerations).

Az OpenFaaS Helm-diagram adattára hozzáadása

A kubeconfig fájllal nyissa meg a konzolt az üzembe helyezési folyamat elkezdését. Ha a futtatását a Windows futtatja, a git bash letöltése és futtatása a legegyszerűbb módszer. A kezdéshez az OpenFaaS saját Helm-diagramokat tart fenn, hogy naprakész maradjon a legújabb módosításokkal:

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évtérben kell tárolni.

Hozzon létre egy névteret az OpenFaaS rendszer és a függvények számára:

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

A titkos secret értékét a következővel kaphatja echo $PASSWORD meg: .

Az itt létrehozott jelszót a Helm-diagram fogja használni az alapszintű hitelesítés engedélyezéséhez az OpenFaaS-átjárón, amely külsőleg elérhető egy LoadBalanceren keresztül.

A klónozott adattár tartalmaz egy Helm-diagramot az OpenFaaS-hez. Ezen a diagramon helyezheti üzembe az OpenFaaS-t az AKS-fürtön.

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

Kimenet:

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

Az OpenFaas elindulásának ellenőrzéséhez futtassa a következő parancsot:

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. Az IP-cím lekérésére használja a kubectl get service parancsot. Az IP-cím szolgáltatáshoz való hozzárendelése egy percet is igénybe vehet.

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

Kimenet:

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

Az OpenFaaS rendszer teszteléséhez keresse meg a külső IP-címet a példában a 8080-as http://192.168.0.152:8080 porton. A rendszer felszólítja, hogy jelentkezzen be. A jelszó beolvasásához írja be a echo $PASSWORD jelszót.

OpenFaaS felhasználói felület

Állítsa $OPENFAAS_URL be a fenti External-IP (Külső IP-cím) halmazt.

Jelentkezzen be a konzolján. Vegye figyelembe, hogy ha a Git Bashben futtatja a Windows, előfordulhat, hogy a ./faas-cli helyett a faas-cli-t kell használnia az alábbi parancsban.

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

Az első függvény létrehozása

Most, hogy az OpenFaaS működőképes, hozzon létre egy függvényt az OpenFaas portál használatával.

Click on Deploy New Function and search for Figlet. Válassza ki a Foglet függvényt, majd kattintson a Deploy (Üzembe helyezés) gombra.

Képernyőkép a Deploy A New Function (Új függvény üzembe helyezése) párbeszédpanelről, a keresési sorban található szövegmaggal.

A curl használatával hívja meg a függvényt. Cserélje le a következő példában az IP-címet az OpenFaas-átjáró IP-címére.

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

Kimenet:

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

Az erőforrások eltávolítása

Helm-diagram üzembe helyezésekor számos Kubernetes-erőforrás jön létre. Ezek az erőforrások lehetnek podok, üzemelő példányok és szolgáltatások. Az erőforrások eltávolításához használja a [helm uninstall][helm-cleanup] parancsot, és adja meg a kiadás nevét az előző helm list parancsban találhatóak szerint.

helm uninstall openfaas

Az alábbi példában az openfaas nevű kiadás el lett távolítva:

release "openfaas" uninstalled

Következő lépések

Az OpenFaaS workshopon olyan gyakorlati tesztkörnyezeteken keresztül folytathatja a tanulást, amelyek olyan témaköröket fednek le, mint a saját GitHub-robot létrehozása, a titkos kulcsok igénye, a metrikák megtekintése és az automatikus skálázás.