DEV Community

Cover image for Synchroniser des ressources hors cluster
Maxime Guilbert
Maxime Guilbert

Posted on

Synchroniser des ressources hors cluster

Quand on automatise des tâches avec un opérateur Kubernetes, on va surtout penser au fait que l'on peut gérer des ressources Kubernetes. Cependant il ne faut pas oublier qu'on n'est pas forcément limité à ce qui nous est présenté.

Comme depuis le début de cette série, on va se concentrer sur le framework Go d'Operator SDK. Et qui dit projet en Go, dit que l'on peut :

  • lire dans une base de données
  • faire appel à une API
  • écrire un message dans une queue
  • ...

En effet, tout ce qui est possible en Go est finalement possible à intégrer dans un opérateur.

En quoi c'est intéressant de faire ça?

Pour une raison simple, vous n'êtes plus limité au contexte de votre cluster Kubernetes pour automatiser des éléments.

Prenons un exemple simple, vous créez des instances de Prometheus ou Thanos dans votre cluster Kubernetes via votre opérateur, mais il n'y a qu'un seul Grafana qui est utilisé dans toute votre entreprise et il ne se trouve pas dans votre cluster. De ce fait, si vous voulez automatiser la gestion des datasources dans ce Grafana, vous devrez passer par son API.
Et c'est là que la puissance de l'opérateur se décuple, car vous pourrez utiliser toutes les APIs et autres services qui gèrent des ressources dans votre compagnie. Pas besoin d'avoir à réinventer la roue ou de migrer le système en question pour qu'il soit dans Kubernetes.

C'est sûr que ça ne sera pas forcément utile à tous, mais imaginez l'exemple suivant:
Vous êtes dans une compagnie qui offrent un ensemble de services pour vos clients. Cela comprend un système de récupération de métriques via Prometheus et une instance de grafana dédiée. Chacun de ces éléments sont gérés par des opérateurs distincts, sur des clusters séparés.
Comment pourriez-vous faire pour gérer automatiquement vos ressources dans tous ces clusters ?

Réponse : Grâce aux APIs !

En créant des APIs dédiées pour gérer vos ressources (en utilisant une librairie comme celle pour dédiée Python) ou en utilisant l'api kubernetes, vous pourriez avoir un opérateur qui va s'occuper d'appeler les apis sur vos différents clusters afin de s'assurer que toutes les ressources demandées sont bien créées.
A partir de là, des infrastructures divisées et potentiellement compliquées à être automatisées toutes ensemble peuvent le devenir!


J'espère que ça vous aidera et si jamais vous avez des questions, quelles qu'elles soient (Il n'y a jamais de questions bêtes!) ou des points qui ne sont pas clairs pour vous, n'hésitez pas à laisser un message dans les commentaires ou à me joindre directement sur LinkedIn (même pour parler d'autres sujets!).


Vous voulez me supporter?

Buy Me A Coffee

Top comments (0)