Code Monkey home page Code Monkey logo

k8s's Introduction

Kubernetes Manifests

Multi-Region, fully redundant, geographically distributed telephony platform.

Overview

Slides click here

Demo video click here

Interactive diagram view click here

Image

This project assumes you have the following installed/configured

  • gcloud
  • kubectl
  • External IP in GCP (used for External HTTP(S) global LB)
  • External IP's in GCP (used for Kamailio/Rtpengine)

install.sh

This takes care of the install process when starting from scratch and/or when adding new clusters/regions.

  • Fresh install deployed in 3 regions and/or adding additional regions
  • Automatic firewall rules for both SIP/RTP
  • 2 Node Pools per cluster (1 - external, 2 - everything else)
  • Handling of google-managed SSL certs
  • Global HTTP(S) Multi-Cluster-Ingress Load balancer (handles websocket/WebRTC and all other HTTP traffic)
  • Auto-assigning of Static IP's to nodes in the external Node Pool via kube-client
  • Enables the necessary API's in GCP for MCS, MCI, Hub memberships
  • Handling of Config cluster setup setup

manifests/

Contains all entities to be deployed.

manifests/config-cluster.yaml

This only gets deployed to the Config Cluster which is determined by the first region/cluster being deployed using the fresh install.

secrets/secrets.yaml

There are secrets referenced in the manifests. Be sure to create the necessary secrets.yaml in the secrets dir before running. Searching through the manifests will help determine the keys/values required.

Install

Run ./install.sh with options below

Usage: ./install.sh [option...]" >&2

-p, --project-id         Your google cloud project ID (required)"
-r, --regions            Specify the region(s) seperated by a space. (optional - defaults to 'us-central1 us-east1 us-east4')"
-s, --ssl-domains        Specify the domains to enable for google-managed SSL (optional)"
-f, --fresh-install      Specify 'yes' or 'no' (optional - defaults to 'no')"

Examples:
3 regions (fresh):       ./install.sh --project-id 'my-project' --ssl-domains 'api.myapp.com api2.myapp.com' --fresh-install 'yes'
Custom regions (fresh):  ./install.sh --project-id 'my-project' --regions 'us-west1 us-central1 us-east1' --ssl-domains 'api.myapp.com api2.myapp.com' --fresh-install 'yes'
Add a region to cluster: ./install.sh --project-id 'my-project' --regions 'us-west1'

k8s's People

Contributors

jmordica avatar

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.