Giter Site home page Giter Site logo

k8-canary's Introduction

K8 Canary

This repository offers a simplistic Go app along with resources useful for deploying the app to Kubernetes.

The Go application exposes 2 endpoints:

  • /health: Responds with HTTP 200, useful for talking to Kubernetes Readiness Probes.
  • /version: Exposes the version number of the application, which is set as a constant.

Location of Docker Image

Docker build

#To build Version 1
docker build --build-arg version=1.0 -t canary:1.0 .

#To build Version 2
docker build --build-arg version=2.0 -t canary:2.0 .

Enable Ingress and apply routing rules

minikube addons enable ingress

kubectl --namespace=ingress-test run echoserver --image=gcr.io/google_containers/echoserver:1.4 --port=8080
kubectl --namespace=ingress-test expose deployment echoserver --type=NodePort
minikube --namespace=ingress-test service echoserver

kubectl --namespace=ingress-test apply -f app-production.yml
minikube --namespace=ingress-test service kubeapp-production-service
kubectl --namespace=ingress-test apply -f app-ingress-production.yml


kubectl --namespace=ingress-test apply -f app-canary.yml
minikube --namespace=ingress-test service kubeapp-production-service
kubectl --namespace=ingress-test apply -f app-ingress-canary.yml

Stuff you gotta do when you ssh into Minikube

minikube ssh

$ cat /etc/hosts
127.0.0.1	localhost
127.0.1.1	minikube
127.0.0.1 myapp.sgune
127.0.0.1	canary.foo.bar
127.0.0.1 foo.bar
$ curl myapp.sgune/version
Congratulations! Version 1.0 of your application is running on Kubernetes.

$ curl foo.bar
Congratulations! Version 1.0 of your application is running on Kubernetes.

$ curl canary.foo.bar
Congratulations! Version 2.0 of your application is running on Kubernetes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.