Azure Functions a Kubernetesen a KEDA-val

Az Azure Functions-futtatókörnyezet rugalmasságot biztosít a kívánt helyen és módon történő üzemeltetéshez. A KEDA (Kubernetes-alapú eseményvezérelt automatikus skálázás) zökkenőmentesen párosítja az Azure Functions-futtatókörnyezetet és az eszközt, hogy eseményvezérelt skálázást biztosítson a Kubernetesben.

Fontos

A tárolóalapú függvényalkalmazások Kubernetesen való futtatása a KEDA használatával vagy közvetlen üzembe helyezéssel egy nyílt forráskódú munka, amelyet ingyenesen használhat. A legjobb erőfeszítést támogató támogatást a közreműködők és a közösség nyújtja az Azure Functions-adattár GitHub-problémáinak használatával. Ezeket a problémákat használva jelentse a hibákat, és jelezze a szolgáltatáskéréseket. A tárolóalapú függvényalkalmazások Azure Container Appsben történő üzembe helyezései, amelyek felügyelt Kubernetes-fürtökön futnak az Azure-ban, jelenleg előzetes verzióban érhetőek el. További információ: Azure Functionst üzemeltető Azure Container Apps.

A Kubernetes-alapú függvények működése

Az Azure Functions szolgáltatás két fő összetevőből áll: egy futtatókörnyezetből és egy méretezési vezérlőből. A Functions-futtatókörnyezet futtatja és végrehajtja a kódot. A futtatókörnyezet logikát tartalmaz a függvényvégrehajtások aktiválására, naplózására és kezelésére. Az Azure Functions-futtatókörnyezet bárhol futtatható. A másik összetevő egy skálázási vezérlő. A skálázási vezérlő figyeli a függvényt megcélzó események sebességét, és proaktív módon skálázza az alkalmazást futtató példányok számát. További információkért tekintse meg az Azure Functions méretezését és üzemeltetését.

A Kubernetes-alapú Függvények a Docker-tárolóban található Functions-futtatókörnyezetet eseményvezérelt skálázással biztosítják a KEDA-val. A KEDA 0 példányra skálázható (ha nem történik esemény) és n példányokra. Ezt úgy teszi, hogy egyéni metrikákat tesz ki a Kubernetes automatikus skálázási eszközéhez (Vízszintes pod automatikus skálázása). A Functions-tárolók KEDA-val való használatával bármely Kubernetes-fürt kiszolgáló nélküli függvényfunkcióit replikálhatja. Ezek a függvények az Azure Kubernetes Services (AKS) virtuális csomópontok szolgáltatásával is üzembe helyezhetők kiszolgáló nélküli infrastruktúrához.

KEDA és függvények kezelése a Kubernetesben

A Functions Kubernetes-fürtön való futtatásához telepítenie kell a KEDA-összetevőt. Ezt az összetevőt az alábbi módokon telepítheti:

  • Azure Functions Core Tools: a func kubernetes install parancs használatával.

  • Helm: a KEDA-t többféleképpen is telepítheti bármely Kubernetes-fürtön, beleértve a Helmt is. Az üzembe helyezési lehetőségek dokumentálva vannak a KEDA-webhelyen.

Függvényalkalmazás üzembe helyezése a Kubernetesben

Bármely függvényalkalmazást üzembe helyezhet egy KEDA-t futtató Kubernetes-fürtön. Mivel a függvények Docker-tárolóban futnak, a projektnek dockerfile-ra van szüksége. Dockerfile-t úgy hozhat létre, hogy func init meghívja a--docker projekt létrehozásához. Ha elfelejtette ezt megtenni, a Functions-projekt gyökeréből bármikor újra hívhat func init , ezúttal a --docker-only beállítással, ahogyan az alábbi példában is látható.

func init --docker-only

A Dockerfile-létrehozással kapcsolatos további információkért tekintse meg a func init hivatkozást.

Ha lemezképet szeretne létrehozni, és üzembe szeretné helyezni a függvényeket a Kubernetesben, futtassa a következő parancsot:

func kubernetes deploy --name <name-of-function-deployment> --registry <container-registry-username>

Ebben a példában cserélje le <name-of-function-deployment> a függvényalkalmazás nevét.

Az üzembe helyezési parancs a következőt hajtja végre:

  1. A korábban létrehozott Dockerfile segítségével helyi rendszerképet hozhat létre a függvényalkalmazáshoz.
  2. A rendszer megjelöli a helyi rendszerképet, és leküldi a tárolóregisztrációs adatbázisba, ahol a felhasználó bejelentkezett.
  3. A rendszer létrehoz és alkalmaz egy jegyzékfájlt a fürtre, amely meghatározza a Kubernetes-erőforrást Deployment , egy erőforrást ScaledObject , valamint Secretsa fájlból local.settings.json importált környezeti változókat.

További információért tekintse meg a func kubernetes deploy parancsot.

Függvényalkalmazás üzembe helyezése privát beállításjegyzékből

A fenti folyamat magánregisztrációs adatbázisok esetében is működik. Ha magánregisztrációs adatbázisból kéri le a tárolórendszerképet, a futtatáskor func kubernetes deploya titkos beállításjegyzék hitelesítő adatait tartalmazó Kubernetes-titkos kódra hivatkozó jelölőt adja meg--pull-secret.

Függvényalkalmazás eltávolítása a Kubernetesből

Az üzembe helyezés után eltávolíthat egy függvényt a társított Deployment, ScaledObjectegy Secrets létrehozott objektum eltávolításával.

kubectl delete deploy <name-of-function-deployment>
kubectl delete ScaledObject <name-of-function-deployment>
kubectl delete secret <name-of-function-deployment>

A KEDA eltávolítása a Kubernetesből

A KEDA a következő módok egyikével távolítható el a fürtből:

Támogatott eseményindítók a KEDA-ban

A KEDA támogatja a következő Azure-függvény-eseményindítókat:

HTTP-eseményindító támogatása

A HTTP-eseményindítókat közzétenő Azure Functionst használhatja, de a KEDA nem kezeli közvetlenül őket. A KEDA prometheus trigger használatával 1 és n példány között skálázhatja a HTTP Azure Functionst.

Következő lépések

További információkat találhat az alábbi forrásokban: