
Con la adopción masiva de Kubernetes y el continuous delivery convertido en práctica estándar, desplegar nuevas versiones está más automatizado que nunca. Pero ¿qué pasa si subes una versión defectuosa? ¿Cuánto tiempo y esfuerzo te va a costar volver a la versión anterior que sí funcionaba?
kuberbs (Kubernetes Rollback System) busca resolver este problema monitoreando tus deployments de Kubernetes: si tu tasa de errores (métricas definidas por ti) supera un umbral, el deployment se revierte automáticamente a la versión anterior.
Por ahora, kuberbs es compatible con métricas de Stackdriver y Datadog como indicador de tasa de errores. También tenemos previsto sumar integraciones con otros sistemas de monitoreo.
kuberbs está escrito en Go y corre como un pod dentro del namespace kube-system de tu cluster de GKE, sin necesidad de modificar el cluster en sí.
kuberbs usa CRD (Custom Resource Definition) y funciona como Operator para gestionar la configuración: qué deployments monitorear, qué métricas usar y cuáles son los umbrales.
apiVersion
:"doit.com/v1" kind
: Rbsmetadata
:name
: my-rbs-examplespec
:watchperiod
: 5metricssource
: stackdrivernamespaces
: -name
: defaultdeployments
: -deployment
:name
: hello-kubernetes-app#Stack driver metric metric
: logging.googleapis.com/user/hello-kubernetes-app-errorsthreshold
: 1 -deployment
:name
: kubernetes-app-2# DataDog metric metric
: gcp.container.cpu.usage_time{*}threshold
: 85 -name
: kube-systemdeployments
: -deployment
:name
: kube-dnsmetric
: logging.googleapis.com/user/digthreshold
: 30La configuración se hace con variables de entorno que se exponen en un ConfigMap de kuberbs.
apiVersion
: v1data
:KUBERBS_CHECKMETRICSINTERVAL
:"10" KUBERBS_APIKEY
:"" KUBERBS_APPKEY
:"" KUBERBS_DEBUG
:"false" kind
: ConfigMapmetadata
:labels
:app
: kuberbsname
: kuberbs-confignamespace
: kube-systemMira a KubeRBS en acción en este breve video:
kuberbs recién está dando sus primeros pasos y tenemos grandes planes por delante. Si te interesa sumarte y aportar, estamos buscando activamente colaboradores que nos ayuden a mejorarlo y a cubrir más casos de uso.
¿Quieres leer más historias? Visita nuestro blog o sigue a Aviv en Twitter.