
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
: Rbsmetadata
:name
: my-rbs-examplespec
:watchperiod
: 5metricssource
: stackdrivernamespaces
: -name
: defaultdeployments
: -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-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 configuration se fait via des variables d'environnement exposées dans une ConfigMap de kuberbs.
apiVersion
: v1data
:KUBERBS_CHECKMETRICSINTERVAL
:"10" KUBERBS_APIKEY
:"" KUBERBS_APPKEY
:"" KUBERBS_DEBUG
:"false" kind
: ConfigMapmetadata
:labels
:app
: kuberbsname
: kuberbs-confignamespace
: kube-systemDé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.