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. Felügyelt Kubernetes-üzemelő példányok esetén inkább 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 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:
- A korábban létrehozott Dockerfile segítségével helyi rendszerképet hozhat létre a 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.
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 deploy
a 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
, 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 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:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: