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