k8s-deployment-strategies - Kubernetes deployment strategies explained

  •        43

In Kubernetes there is few different way to release an application, you have to carefully choose the right strategy to make your infrastructure resilient. These examples were created and tested on Minikube running with Kubernetes v1.10.0.

https://container-solutions.com/kubernetes-deployment-strategies/
https://github.com/ContainerSolutions/k8s-deployment-strategies

Tags
Implementation
License
Platform

   




Related Projects

shipper - Kubernetes native multi-cluster canary or blue-green rollouts using Helm

  •    Go

Visit docs.shipper-k8s.io for the full documentation, examples and guides. Shipper is an extension for Kubernetes to add sophisticated rollout strategies and multi-cluster orchestration.

kubernetes-for-java-developers - A Day in Java Developer’s Life, with a taste of Kubernetes

  •    Java

Deploying your Java application in a Kubernetes cluster could feel like Alice in Wonderland. You keep going down the rabbit hole and don’t know how to make that ride comfortable. This repository explains how a Java application can be deployed, tested, debugged and monitored in Kubernetes. In addition, it also talks about canary deployment and deployment pipeline. We will use a simple Java application built using Spring Boot. The application publishes a REST endpoint that can be invoked at http://{host}:{port}/hello.

control - Control manages the lifecycle of clusters on your infrastructure and allows deployment of applications via HELM

  •    Go

Create HA K8s clusters on multiple clouds. Simplify K8s deployment and management, easily configure and deploy Helm releases, and view at-a-glance metrics for cluster usage. Want to skip the rest and install SG Control? Get started here.

pipeline - A step by step guide on creating build and deployment pipelines for Kubernetes.

  •    

The pipeline tutorial walks you through creating an end-to-end deployment pipeline using Cloud Container Builder, GitHub, and multiple Kubernetes clusters. This tutorial will demonstrate how to propagate a Kubernetes deployment through multiple environments, each backed by a dedicated Kubernetes cluster, using a collection of Kubernetes manifest files across a set of GitHub repositories representing each environment.

kube-deploy - A place for cluster deployment automation

  •    Go

This is a repository of community maintained Kubernetes cluster deployment automations.Think of this as https://github.com/kubernetes/contrib for deployment automations! Each subdirectory is its own project. It should be a place where people can come see how the community is deploying kubernetes and should allow for faster development iteration compared to developing in the main repository.


ecs-blue-green-deployment - Reference architecture for doing blue green deployments on ECS.

  •    Python

This reference architecture is in reference to blog post on blue green deployments on ECS. It creates a continuous delivery by leveraging AWS CloudFormation templates. The templates creates resources using Amazon's Code* services to build and deploy containers onto an ECS cluster as long running services. It also includes a manual approval step facilitated by lambda function that discovers and swaps target group rules between 2 target groups, promoting the green version to production and demoting the blue version to staging. This example uses AWS Command Line Interface to run Step-3 below.

flagger - Istio and App Mesh progressive delivery Kubernetes operator

  •    Go

Flagger is a Kubernetes operator that automates the promotion of canary deployments using Istio or App Mesh routing for traffic shifting and Prometheus metrics for canary analysis. The canary analysis can be extended with webhooks for running acceptance tests, load tests or any other custom validation. Flagger implements a control loop that gradually shifts traffic to the canary while measuring key performance indicators like HTTP requests success rate, requests average duration and pods health. Based on analysis of the KPIs a canary is promoted or aborted, and the analysis result is published to Slack.

kubernetes-anywhere - {concise,reliable,cross-platform} turnup of Kubernetes clusters

  •    Shell

Learning how to deploy Kubernetes is hard because the default deployment automation cluster/kube-up.sh is opaque. We can do better, and by doing better we enable users to run Kubernetes in more places.If you want to deploy a cluster to kick the tires of Kubernetes, checkout one of the getting started guides for your preferred supported deployment target.

origin - Enterprise Kubernetes for Developers

  •    Go

OpenShift Origin is a distribution of Kubernetes optimized for continuous application development and multi-tenant deployment. OpenShift adds developer and operations-centric tools on top of Kubernetes to enable rapid application development, easy deployment and scaling, and long-term lifecycle maintenance for small and large teams.For questions or feedback, reach us on IRC on #openshift-dev on Freenode or post to our mailing list.

FlubuCore - A cross platform build and deployment automation system for building projects and executing deployment scripts using C# code

  •    CSharp

"FlubuCore - Fluent Builder Core" is a cross platform build and deployment automation system. You can define your build and deployment scripts in C# using an intuitive fluent interface. This gives you code completion, IntelliSense, debugging, FlubuCore custom analyzers, and native access to the whole .NET ecosystem inside of your scripts. Extending FlubuCore fluent interface by writing your own tasks within FlubuCore plugins.

zero-to-jupyterhub-k8s - Resources for deploying JupyterHub to a Kubernetes Cluster

  •    Python

This is under active development and subject to change. This repo contains resources, such as Helm charts and the Zero to JupyterHub Guide, which help you to deploy JupyterHub on Kubernetes.

kubeform - Form your :boat: Kubernetes :anchor: cluster anywhere using CoreOS, Terraform and Ansible

  •    Python

Deploy yourself a high-availability Kubernetes cluster, in minutes. Built on Terraform, CoreOS and Ansible.Our recipes for bootstrapping HA Kubernetes clusters on any cloud or on-premise.

helm-classic - (OBSOLETE) Helm Classic v1

  •    Go

Helm and Deployment Manager have recently joined forces to make deploying and managing software on Kubernetes as simple as possible. The combined effort now lives in the Kubernetes GitHub organization at kubernetes/helm. For more information about the architecture of kubernetes/helm read the architecture documentation.

prometheus-operator - Prometheus Operator creates/configures/manages Prometheus clusters atop Kubernetes

  •    Go

Project status: beta Not all planned features are completed. The API, spec, status and other user facing objects may change, but in a backward compatible way.The Prometheus Operator for Kubernetes provides easy monitoring definitions for Kubernetes services and deployment and management of Prometheus instances.

seldon-core - Machine Learning Deployment for Kubernetes

  •    Java

Seldon Core is an open source platform for deploying machine learning models on Kubernetes. A Kubernetes Cluster. Kubernetes can be deployed into many environments, both on cloud and on-premise.

kubespy - Tools for observing Kubernetes resources in real time, powered by Pulumi.

  •    Go

kubespy is a small tool that makes it easy to observe how Kubernetes resources change in real time, derived from the work we did to make Kubernetes deployments predictable in Pulumi's CLI. Run kubespy at any point in time, and it will watch and report information about a Kubernetes resource continuously until you kill it. kubespy trace deployment nginx will "trace" the complex changes a complex Kubernetes resource makes in the cluster (in this case, a Deployment called nginx), and aggregate them into a high-level summary, which is updated in real time.

deliver - Pure bash deployment tool with customisable strategies.

  •    Shell

Pure bash deployment tool with customisable strategies.

kube-applier - kube-applier enables automated deployment and declarative configuration for your Kubernetes cluster

  •    Go

kube-applier is a service that enables continuous deployment of Kubernetes objects by applying declarative configuration files from a Git repository to a Kubernetes cluster.kube-applier runs as a Pod in your cluster and watches the Git repo to ensure that the cluster objects are up-to-date with their associated spec files (JSON or YAML) in the repo.

argo-cd - Declarative Continuous Delivery for Kubernetes

  •    Go

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Application definitions, configurations, and environments should be declarative and version controlled. Application deployment and lifecycle management should be automated, auditable, and easy to understand.

ksonnet - A CLI-supported framework that streamlines writing and deployment of Kubernetes configurations to multiple clusters

  •    Go

ksonnet is a framework for writing, sharing, and deploying Kubernetes application manifests. With its CLI, you can generate a complete application from scratch in only a few commands, or manage a complex system at scale. All of this results in a more iterative process for developing manifests, one that can be supplemented by continuous integration (CI).