
Com a adoção em massa do Kubernetes e o continuous delivery como prática padrão, lançar novas versões nunca foi tão automatizado. Mas o que acontece se você subir uma versão com bug? Quanto tempo e esforço vão custar para voltar à versão anterior que funcionava?
O kuberbs (Kubernetes Rollback System) é uma tentativa de resolver esse problema monitorando seus deployments no Kubernetes: se a taxa de erros (em métricas definidas por você) ultrapassar um limite, o deployment volta automaticamente para a versão anterior.
Hoje, o kuberbs aceita métricas do Stackdriver e do Datadog como indicadores de taxa de erro. Também pretendemos adicionar integrações com outros sistemas de monitoramento.
O kuberbs é escrito em Go e roda como um pod dentro do namespace kube-system do seu cluster GKE, sem precisar alterar nada no cluster em si.
O kuberbs usa CRD (Custom Resource Definition) e funciona como Operator para gerenciar a configuração: quais deployments monitorar, quais métricas observar e quais limites aplicar.
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
: 30A configuração é feita por variáveis de ambiente expostas em um ConfigMap do kuberbs.
apiVersion
: v1data
:KUBERBS_CHECKMETRICSINTERVAL
:"10" KUBERBS_APIKEY
:"" KUBERBS_APPKEY
:"" KUBERBS_DEBUG
:"false" kind
: ConfigMapmetadata
:labels
:app
: kuberbsname
: kuberbs-confignamespace
: kube-systemVeja o KubeRBS em ação neste vídeo rápido:
O kuberbs ainda está dando os primeiros passos e temos grandes planos para ele. Se você quiser participar e contribuir, estamos em busca de colaboradores para nos ajudar a evoluir o projeto e cobrir mais cenários de uso.
Quer mais conteúdo? Confira nosso blog ou siga o Aviv no Twitter.