Spinnaker and Kubernetes (the peanut butter to your jam)
Kubernetes: an open source container management tool for cloud management
- I already have Kubernetes – why do I need Spinnaker?
Spinnaker is already made to fit Kubernetes out of the box and provides additional features that complements Kubernetes. Lars, a Google engineer working on Spinnaker-Kubernetes integration, says that the goal of Spinnaker is “to allow you to automate and make reliable your deployments and your rollback steps, so you can set up pipelines describing how you want to deploy to your cloud provider of choice and also safely rollback in case anything goes wrong.”
- But does Spinnaker actually provide any extra features on top of Kubernetes?
The important thing to note is that Spinnaker streamlines deploying to Kubernetes – they do not do the exact same functions. If Kubernetes requires a rollback it will require multiple manual steps in order to do so whereas Spinnaker utilizes methods such as Red/Black (AKA Blue/Green) deployment strategy to facilitate immediate rollbacks as simply as possible. In short, Kubernetes is capable of automating your deployments but it is not meant for orchestrating them.
- How does Spinnaker work with Kubernetes?
Spinnaker is the best at giving you oversight into your deployed infrastructure – showing you what you have running, what’s eating up traffic, what’s healthy, etc. The resource mapping of Spinnaker is based on server groups that are load-balanced behind services with security rules. While Kubernetes does have this type of deployments API, it isn’t always enough to give you a fully automated deployment flow from code to production. This is the gap that Spinnaker fills by allowing for orchestration of multiple steps through defining your deployment pipelines.
- How mature is support for Kubernetes within Spinnaker?
Spinnaker is configured to work with Kubernetes out of the box. Google wrote the integration for supporting Kubernetes with Spinnaker and is constantly maintaining it.
- I want to keep my infrastructure as versioned code in my repository, but use the Spinnaker GUI to get visual input on how things are doing – can this be done?
The best way to achieve this is to use the Spinnaker API instead of the UI. Everything in Spinnaker is backed by JSON based APIs so you can always create your pipelines programmatically. Netflix is also working on declarative pipeline DSL.