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 teljes mértékben támogatott Kubernetes-üzemelő példányok esetében fontolja meg az Azure Functionst üzemeltető Azure Container Apps használatát.
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 skálázható nulla példányra (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 létrehozni a Dockerfile-t, bármikor újra hívhatja func init
a kódprojekt gyökerét.
(Nem kötelező) Ha létre kell hoznia a Dockerfile-t, használja a
func init
következő parancsot--docker-only
:func init --docker-only
A Dockerfile-létrehozással kapcsolatos további információkért tekintse meg a
func init
hivatkozást.A parancs használatával létrehozhatja a
func kubernetes deploy
rendszerképet, és üzembe helyezheti a tárolóalapú függvényalkalmazást a Kubernetesben: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ő feladatokat hajtja végre:- A korábban létrehozott Dockerfile segítségével helyi rendszerképet hozhat létre a tárolóalapú függvényalkalmazáshoz.
- A rendszer megjelöli a helyi rendszerképet, és leküldi a tárolóregisztrációs adatbázisba, ahol a felhasználó bejelentkezett.
- 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ástScaledObject
, valamintSecrets
a fájlbóllocal.settings.json
importált környezeti változókat.
Függvényalkalmazás üzembe helyezése privát beállításjegyzékből
Az előző üzembe helyezési lépések magánregisztrációs adatbázisok esetében is működnek. Ha magánregisztrációs adatbázisból húzza le a tárolórendszerképet, a futtatáskor func kubernetes deploy
a titkos beállításjegyzék hitelesítő adatait tartalmazó Kubernetes-titkos kódra hivatkozó jelző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
, ScaledObject
egy 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:
Azure Functions Core Tools: a
func kubernetes remove
parancs használatával.Helm: tekintse meg a KEDA-webhelyen található eltávolítási lépéseket.
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-eseményindítóval skálázhatja a HTTP Azure Functionst egy-egy példányran
.
Következő lépések
További információt a következő források tartalmaznak: