How to best deploy your applications to Kubernetes

Mar 7, 2018 by Armory

So you’ve put all your cloud eggs in the Kubernetes basket — what’s the best way to deploy applications to Kubernetes clusters? Spinnaker.

Why Spinnaker?

Our interview with the Google engineering team that built the original Kubernetes support revealed that Spinnaker provides greater insight and agility to deployments than the native Kubernetes API.

Spinnaker support for Kubernetes uses the official Kubernetes API. Therefore it can do everything that Kubernetes is capable of doing on its own (i.e., with the kubectl command) however, it offers more capabilities. It can:

Why Spinnaker over Jenkins?

Most companies are using Jenkins with in-house custom scripts. While Jenkins is a very powerful build server, it is not a complete deployment tool. Here’s a great post that outlines the many problems with Jenkins and Continuous Delivery.

Jenkins is centered around scripts, ad-hoc executions, and passing parameters between them, which means that Jenkins has zero knowledge of what the infrastructure is doing. Not only that, debugging Jenkins plus the glue code is a big challenge.

Spinnaker, on the other hand, has first class support for cloud resources. Servers and deployments are built-in, and no custom scripting is needed. It can point at an existing Kubernetes cluster, where it will “read” the status of the cluster and add its applications on the dashboard as if they were deployed by Spinnaker, all the while not adding any additional metadata on any cloud provider (as it doesn’t need to). Existing Kubernetes deployments can also be used as templates for future deployments.

Who should look at Spinnaker?

Companies that need high scalability, and/or are
running hundreds of VMs should look at Spinnaker and Kubernetes. Armory is working with the Google team to create an even more advanced version of the Kuberentes Cloud Provider, which will be fully announced at a March 13th Meetup in San Francisco.

Recently Published Posts

Spinnaker tips: Integration of Terraform & Kubernetes in a pipeline

Dec 8, 2023

Spinnaker is an incredibly powerful platform that lets you deploy to multiple locations and targets concurrently. An example of this includes armory plugin which lets you call terraform and capture the output of terraform commands (this is similar to how you can capture logs from RunJobs https://spinnaker.io/docs/guides/user/kubernetes-v2/run-job-manifest/#capturing-output but our integration is a deeper integration and […]

Read more

Spinnaker Tips: Setting a github status check on a PR from a pipeline

Oct 12, 2023

A common situation we hit is creating a pull request on github with some terraform changes that are run through our pipelines. We’d like to verify the terraform changes cleanly “plan” before we apply them. An example is when someone has a typo (how many times I’ve left dangling commas in a JSON object!) and […]

Read more

Introducing Pipelines-as-Code Plugin for Open Source Spinnaker

Jul 21, 2023

Easily Scale and Automate with Version Control in Git Developers choose best-of-breed version control systems like GitHub for a reason: they need the ability to collaborate and improve code together.  But a broken Spinnaker deployment pipeline can often be the last thing standing in the way of getting your application to market.  Until now. Armory’s […]

Read more