Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

KubeRBS : des rollbacks Kubernetes automatiques pour dormir sur vos deux oreilles

By Aviv LauferSep 13, 20182 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

1 6tl05dq4o03gbdcptwwx8q

Avec l'adoption massive de Kubernetes et la généralisation du continuous delivery, le déploiement de nouvelles versions n'a jamais été aussi automatisé. Mais que se passe-t-il lorsque vous déployez une version défaillante ? Combien de temps et d'efforts faut-il pour revenir à la version précédente, saine ?

kuberbs (Kubernetes Rollback System) tente de résoudre ce problème en surveillant vos déploiements Kubernetes : si votre taux d'erreur (à partir de métriques définies par l'utilisateur) dépasse un seuil donné, le déploiement est automatiquement ramené à la version précédente.

À ce jour, kuberbs s'appuie sur les métriques Stackdriver et Datadog comme indicateurs du taux d'erreur. D'autres intégrations avec des systèmes de monitoring sont également prévues.

kuberbs est écrit en Go et tourne comme un pod dans le namespace kube-system de votre cluster GKE, sans aucune modification du cluster lui-même.

kuberbs repose sur les CRD (Custom Resource Definitions) et agit comme un Operator pour gérer la configuration : quels déploiements surveiller, quelles métriques utiliser et quels seuils appliquer.

apiVersion

:

"doit.com/v1" kind

: Rbs

metadata

:

name

: my-rbs-example

spec

:

watchperiod

: 5

metricssource

: stackdriver

namespaces

:
-

name

: default

deployments

:
-

deployment

:

name

: hello-kubernetes-app

#Stack driver metric metric

: logging.googleapis.com/user/hello-kubernetes-app-errors

threshold

: 1
-

deployment

:

name

: kubernetes-app-2

# DataDog metric metric

: gcp.container.cpu.usage_time{*}

threshold

: 85
-

name

: kube-system

deployments

:
-

deployment

:

name

: kube-dns

metric

: logging.googleapis.com/user/dig

threshold

: 30

La configuration se fait via des variables d'environnement exposées dans une ConfigMap de kuberbs.

apiVersion

: v1

data

:

KUBERBS_CHECKMETRICSINTERVAL

:

"10" KUBERBS_APIKEY

:

"" KUBERBS_APPKEY

:

"" KUBERBS_DEBUG

:

"false" kind

: ConfigMap

metadata

:

labels

:

app

: kuberbs

name

: kuberbs-config

namespace

: kube-system

Découvrez KubeRBS à l'œuvre dans cette courte vidéo :

kuberbs n'en est qu'à ses débuts et nous avons de grandes ambitions pour le projet. Si vous souhaitez y contribuer, nous recherchons activement des contributeurs pour nous aider à l'améliorer et à couvrir davantage de cas d'usage.

Envie d'en lire davantage ? Consultez notre blog ou suivez Aviv sur Twitter.