Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

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

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

By Aviv LauferSep 13, 20182 min read

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.

PerfectScale™ for Kubernetes

Ready to optimize?

Get your free Kubernetes savings analysis

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

Your cloud bill shouldn't be a mystery

Optimization, automation, expertise. In one platform.

: 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.