more figures

This commit is contained in:
2019-12-04 21:27:35 +01:00
parent fa7c33b60f
commit 6b77b25dd7
3 changed files with 14 additions and 6 deletions

View File

@@ -104,7 +104,7 @@ A Kubeless egy Go nyelven írt, nyílt forr\'askódú, Kubernetes rendszerbe ép
Egy telepített függvény lefutását több esemény - úgynevezett trigger - kiválthatja. Ezek közül egy a http kérés, amelyet a szakdolgozatomban vizsgáltam. Emellett van lehetőség eseményvezérelt műkődésre is, például Kafka rendszerben tárolt üzenetek feldolgozására is.
Lévén, hogy Function as a Service rendszerről van szó, a Kubeless-be telepítendő függvényeket sajátos módon kell megírni. \aref{code:hello-kubeless-go} K\'odr\'eszleten l\'athat\'o, hogy egy Kubeless specifikus csomagot kell import\'alni Go nyelven \'irt f\"uggv\'enyek eset\'eben. Szint\'en l\'atszik, hogy azon k\'iv\"ul egy\'eb t\"obblet teendő nincs.
Lévén, hogy Function as a Service rendszerről van szó, a Kubeless-be telepítendő függvényeket sajátos módon kell megírni. \aref{code:hello-kubeless-go} k\'odr\'eszleten l\'athat\'o, hogy egy Kubeless specifikus csomagot kell import\'alni Go nyelven \'irt f\"uggv\'enyek eset\'eben. Szint\'en l\'atszik, hogy azon k\'iv\"ul egy\'eb t\"obblet teendő nincs.
\begin{lstlisting}[float=!ht,caption={Kubeless rendszerbe telep\'ithető Hello World k\'odr\'eszlet Go nyelven},label=code:hello-kubeless-go]
package kubeless
@@ -122,10 +122,14 @@ Mint az a fenti kódrészleten is látszik, a függvény első paraméterben meg
Egy megírt függvényt telepíteni két módon lehet. Egy lehetőség közvetlen a Kubernetes API-t használva. Alternatíva és könnyítésként a Kubeless fejlesztői elkészítettek egy parancssoros programot, amelyet használva egyszerűen lehet telepíteni függvényeket, létrehozni triggereket, valamint beállítani a skálázást. Fontos, hogy telepítés közben nem jön létre automatikusan CPU limit egy-egy függvénynek, akkor sem, ha skálázást kérünk hozzá. Skálázáshoz a Kubeless a Horizontal Pod Autoscalert használja.
Mivel a Kubernetesben Podokat van lehetőség futtatni és ütemezni, a Kubeless függvényekből is Podokat kell létrehozni. Ez a folyamat részleteiben eltér programnyelvenként azok sajátosságai miatt.
Mivel a Kubernetesben Podokat van lehetőség futtatni és ütemezni, a Kubeless függvényekből is Podokat kell létrehozni. Ez a folyamat, amely \aref{fig:kubeless-pod-creation} \'abr\'an megfigyelhető, részleteiben eltér programnyelvenként azok sajátosságai miatt.
%TODO
<szép ábra a pod létrehozásáról>
\begin{figure}[!ht]
\centering
\includegraphics[width=120mm, keepaspectratio]{figures/kubeless_pod_creation.png}
\caption{Kubeless f\"uggv\'enyből Pod l\'etrehoz\'asa}
\label{fig:kubeless-pod-creation}
\end{figure}
A Podban futó konténer létrehozása során a Kubeless Controller a Debian nevű Docker képből indul ki. Először telepíti a programnyelv csomagjait, annak függőségeit és a kód binárissá fordításához szükséges eszközöket. Ez után felmásolja a kódot és a vele együtt, opcionálisan megadott függőségleíró állományt. A fordítási folyamat végén lefordítja a kódot. Ez a folyamat csak akkor lesz sikeres, ha a kód belepési függvényét tartalmazó fájlban meg van jelölve a Kubeless futtató környezet, mint függőség, ezáltal nincs szükség egyedi fordítóeszközre. Az elkészült, futtatható binárist megjelöli a rendszer, mint a képből futtatott konténer belépési pontját. Egy így készült Docker képet lehetőség van feltölteni a Docker Hubra, így későbbi használat során nincs szükség a folyamat újbóli futtatására.