Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

KubeRBS: Automatische Kubernetes-Rollbacks für ruhige Nächte!

By Aviv LauferSep 13, 20182 min read

Diese Seite ist auch in English, Español, Français, Italiano, 日本語 und Português verfügbar.

1 6tl05dq4o03gbdcptwwx8q

Kubernetes ist allgegenwärtig und Continuous Delivery längst Standard – das Ausrollen neuer Versionen läuft automatisierter denn je. Doch was, wenn eine fehlerhafte Version live geht? Wie viel Zeit und Aufwand kostet das Rollback auf die letzte funktionierende Version?

kuberbs (Kubernetes Rollback System) setzt genau hier an: Das Tool überwacht Ihre Kubernetes-Deployments – übersteigt die Fehlerrate (anhand benutzerdefinierter Metriken) einen festgelegten Schwellenwert, wird das Deployment automatisch auf die vorherige Version zurückgerollt.

Aktuell unterstützt kuberbs Stackdriver- und Datadog-Metriken als Indikator für die Fehlerrate. Weitere Integrationen mit anderen Monitoring-Systemen sind in Planung.

kuberbs ist in Go geschrieben und läuft als Pod im kube-system-Namespace Ihres GKE-Clusters – ganz ohne Anpassungen am Cluster selbst.

kuberbs nutzt CRD (Custom Resource Definition) und agiert als Operator: Es verwaltet, welche Deployments überwacht werden, welche Metriken zum Einsatz kommen und welche Schwellenwerte gelten.

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

#Stackdriver-Metrik metric

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

threshold

: 1
-

deployment

:

name

: kubernetes-app-2

# DataDog-Metrik metric

: gcp.container.cpu.usage_time{*}

threshold

: 85
-

name

: kube-system

deployments

:
-

deployment

:

name

: kube-dns

metric

: logging.googleapis.com/user/dig

threshold

: 30

Konfiguriert wird über Umgebungsvariablen, die in einer ConfigMap von kuberbs hinterlegt sind.

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

KubeRBS in Aktion sehen Sie in diesem kurzen Video:

kuberbs steht noch am Anfang – und wir haben Großes damit vor. Wer mitmachen und beitragen möchte: Wir suchen aktiv Contributors, die uns dabei helfen, das Tool weiterzuentwickeln und mehr Use Cases abzudecken.

Lust auf mehr? Schauen Sie in unserem Blog vorbei oder folgen Sie Aviv auf Twitter.