Serverless : Exécuter ses containers directement comme des fonctions avec Fission et Rancher RKE2 …
Tags: docker, equinix, serverless, kubernetes
Published: 2022-01-04 17:11:13

---
title: Serverless : Exécuter ses containers directement comme des fonctions avec Fission et Rancher RKE2 …
published: true
date: 2022-01-04 16:55:40 UTC
tags: docker,equinix,serverless,kubernetes
canonical_url: https://deep75.medium.com/serverless-ex%C3%A9cuter-ses-containers-directement-comme-des-fonctions-avec-fission-et-rancher-rke2-25fa7299ec28
---


![](https://cdn-images-1.medium.com/max/1024/1*wL6mAPSiTv9c5HNpRxehzA.png)

Dans des articles précédents, j’avais réalisé un focus sur Fission, une plateforme permettant d’initier des fonctions à courte durée de vie dans n’importe quel langage et permettant de les associer à des requêtes HTTP (ou à d’autres déclencheurs d’événements). Avec Fission on aborde donc le domaine du **Serverless Computing** , un modèle de conception cloud natif, basé sur une architecture ne nécessitant pas de **gestion de serveurs pour créer et exécuter des applications.**

> Dans la lignée des services Cloud visant à faciliter le recours à des services innovants en limitant les investissements de capital, le serverless est un vrai choix stratégique, avec des enjeux liés à la stratégie fournisseur et au service rendu aux utilisateurs.

- [Serverless: Fonctions à la demande avec K3s via Fission, Kubeless et OpenFaaS …](https://deep75.medium.com/serverless-fonctions-%C3%A0-la-demande-avec-k3s-via-fission-kubeless-et-openfaas-26848d70f3bf)
- [Serverless : déploiement et test de la stack FONK (FaaS — Object store — NoSQL — Kubernetes) via…](https://deep75.medium.com/serverless-d%C3%A9ploiement-et-test-de-la-stack-fonk-faas-object-store-nosql-kubernetes-via-2b6ccf5ebf05)

> On peut donc déployer des fonctions instantanément avec une seule commande. Il n’y a pas de conteneurs à construire, ni de registres Docker à gérer …

[Fission](https://fission.io/)

![](https://cdn-images-1.medium.com/max/1024/1*n-b_TV8ZQcp5-2verfKpVQ.png)

Je pars donc d’un serveur à la demande sur la plateforme Equinix Metal comme base de départ :

- [Equinix Metal™](https://www.equinix.com/services/digital-infrastructure-services/equinix-metal)
- [Equinix Metal - Global, Automated Bare Metal Server Provider](https://metal.equinix.com/)

![](https://cdn-images-1.medium.com/max/1024/1*ZpD3L86XpBKKOm0yXioCpA.png)

Installation de Rancher RKE2 pour initier un cluster Kubernetes sur ce serveur. En rappel, RKE2, également connue sous le nom de RKE Government, est la distribution Kubernetes de nouvelle génération de Rancher.

> Il s’agit d’une distribution Kubernetes entièrement conforme qui se concentre sur la sécurité et la conformité au sein du secteur du gouvernement fédéral américain.

[RKE2 - Rancher's Next Generation Kubernetes Distribution](https://docs.rke2.io/)

![](https://cdn-images-1.medium.com/max/1024/1*m5xcHDpzlkdYak-5B60ugg.png)

et installation du client Kubectl pour interagir avec ce cluster en fonctionnement localement sur ce serveur :

![](https://cdn-images-1.medium.com/max/1024/1*4ZuzER2m7OXHNgw0hEjdag.png)

![](https://cdn-images-1.medium.com/max/1024/1*wT9pSnU-dGWEYhKBZ3ihHw.png)

Par la suite, j’installer Nginx en tant qu’Ingress Controller sur ce cluster :

[Installation Guide - NGINX Ingress Controller](https://kubernetes.github.io/ingress-nginx/deploy/)

![](https://cdn-images-1.medium.com/max/1024/1*FY_UkQD15iemssr50YUTqQ.png)

> ainsi que Cert-Manager chargé de la gestion des certificats X.509 pour un cluster Kubernetes :

![](https://cdn-images-1.medium.com/max/1024/1*dAek8aSryhzjMuufv1HUjQ.png)

Il est alors possible d’installer le serveur Rancher 2.6.X sur ce cluster pour pouvoir le manager plus simplement. Pour cela installation de Helm3 :

[Installing Helm](https://helm.sh/docs/intro/install/)

![](https://cdn-images-1.medium.com/max/1024/1*Dzj9hcxWEBpH5GmLWtCCeQ.png)

Installation du serveur Rancher via Helm …

[Install/Upgrade Rancher on a Kubernetes Cluster](https://rancher.com/docs/rancher/v2.6/en/installation/install-rancher-on-k8s/)

![](https://cdn-images-1.medium.com/max/1024/1*cSxC64ezaATVVGhyKmVSaw.png)

Le serveur Rancher est disponible via le domaine Wild Card défini avec l’installation du Chart :

![](https://cdn-images-1.medium.com/max/1024/1*sqVfICZxdDiRpgMMOH5_BA.png)

![](https://cdn-images-1.medium.com/max/1024/1*_r5yvKT9W-3wWeBScU8kcQ.png)

avec des informations de base sur le cluster Kubernetes en exécution :

![](https://cdn-images-1.medium.com/max/1024/1*j-k5TvHhGLk_co1J-F3WiQ.png)

![](https://cdn-images-1.medium.com/max/1024/1*AcolXK-Y8eaIT9lLAs09vA.png)

voire détaillée :

![](https://cdn-images-1.medium.com/max/1024/1*rwT0E_yuHh44NapCioH_TA.png)

Activation du monitoring du cluster via Prometheus et Grafana dans le Marketplace fourni au sein du serveur Rancher :

[Monitoring and Alerting](https://rancher.com/docs/rancher/v2.6/en/monitoring-alerting/)

![](https://cdn-images-1.medium.com/max/1024/1*5Cdq7oi6E_XWrjxX0HM4cA.png)

![](https://cdn-images-1.medium.com/max/1024/1*EjNeCCn6to19Hv7pPEbLuA.png)

Je peux donc passer à l’étape suivante correspondante à l’installation de Fission :

[Installing Fission](https://fission.io/docs/installation/)

![](https://cdn-images-1.medium.com/max/1024/1*kTGPlIuGspxHrlLlizI0Lw.png)

![](https://cdn-images-1.medium.com/max/1024/1*42MNiZ2BK6JLwqw64n_WmA.png)

![](https://cdn-images-1.medium.com/max/1024/1*Iio0zMAwC19LxR8MPUKsRg.png)

La plateforme Fission est disponible et le client Fission est téléchargé depuis son dépôt sur GitHub :

![](https://cdn-images-1.medium.com/max/1024/1*K59hpsxTcRWknKtGFmKPNw.png)

Lancement à ce niveau d’un container comme une fonction dans Fission :

[Running container as functions](https://fission.io/docs/usage/function/container-functions/)

![](https://cdn-images-1.medium.com/max/1024/1*7LE0P_pcUTFx0-Kwred2hA.png)

Pour que ce container soit accessible depuis Nginx Ingress Controller, je crée la route correspondante :

[Exposing Functions With Ingress](https://fission.io/docs/usage/ingress/)

![](https://cdn-images-1.medium.com/max/1024/1*IT9PyfNnII0-FgDREwRaUQ.png)

![](https://cdn-images-1.medium.com/max/1024/1*R41CEy4GlyBsIXVtv7TALQ.png)

Et effectivement, le container qui expose un site web de démo sur le port TCP 80 via Nginx et l’adresse IP publique du serveur physique, est accessible sur

**_http://136.144.48.141/website_**  :

![](https://cdn-images-1.medium.com/max/1024/1*0CAHaPWYEUjnDTOGjPvHcg.png)

![](https://cdn-images-1.medium.com/max/1024/1*FrhK-N_745ZsnJ47q7QRgA.png)

Autre démonstration via le sempiternel démonstrateur FC :

![](https://cdn-images-1.medium.com/max/1024/1*pKYBqxQeKeQzBG22WqaIRQ.png)

![](https://cdn-images-1.medium.com/max/1024/1*KRK13M18Oy-9W5ax69QAWA.png)

Naturellement, via Grafana et Prometheus je dispose des infos de monitoring sur l’ensemble de la plateforme installée ici :

![](https://cdn-images-1.medium.com/max/1024/1*vaQKe6RmUmLtdmYVzuaXtQ.png)

![](https://cdn-images-1.medium.com/max/1024/1*dbopCuZvy4tAra-l-PI2jQ.png)

![](https://cdn-images-1.medium.com/max/1024/1*Ng2l5qj0Ojy8zSVSKutnWw.png)

![](https://cdn-images-1.medium.com/max/1024/1*SSAnBaV8FdrCDXSeUvjaHA.png)

Le tout pour une consommation plus que raisonnable sur ce serveur physique …

![](https://cdn-images-1.medium.com/max/1024/1*ZKhWgp8LY0swtsIBQ7RDOg.png)

Il a donc été possible de tenter de mimer des plateformes comme Google Cloud Run via ces outils Open Source sur son propre serveur physique …

> D’autres dispositifs d’observabilité sont possibles avec Fission comme Linkerd :

[Observability with Linkerd](https://fission.io/docs/usage/observability/linkerd/)

![](https://cdn-images-1.medium.com/max/1024/0*cIJKC0X9CYNUPvNM.png)

[Tracing with OpenTelemetry](https://fission.io/docs/usage/observability/opentelemetry/)

> Selon Forrester, le pourcentage de développeurs déclarant que leur organisation utilise des conteneurs est passé de 33 % en 2020 à 42 % en 2021. Dans le même temps, l’utilisation du serverless est passée de 26 % en 2020 à 32 % en 2021.

[Les prévisions du Forrester pour 2022...](https://www.itforbusiness.fr/les-previsions-du-forrester-pour-2022-45460)

> Selon ses prévisions, en 2022, plus de la moitié des entreprises déclareront avoir adopté des développements « cloud-native ».

Mais pour Forrester, « _plus important encore, les entreprises vont bien davantage pratiquer « replatforming » et « refactoring » pour fonder leurs stratégies sur le cloud-native plutôt que de le superposer à leurs plans existants_ ».

Mais cette utilisation du Serverless ne se fera probablement pas sans containers 😉 …

![](https://cdn-images-1.medium.com/max/1024/1*z3TleAXDwtKcgizppXwlFw.png)

À suivre !