Git Product home page Git Product logo

federated-ingress-controller's Introduction

wercker status Go Report Card

Federated Ingress Round Robin DNS Controller

The Federated Ingress Round Robin DNS Controller allows you to create federated ingress resource with the Kubernetes cluster of your choice (Amazon Web Services (AWS), Google Kubernetes Engine (GKE), Minikube, etc), and route requests to your application based on the defined ingress rules.

Before You Begin

The default Federated Ingress Controller, which is part of the Federation project has a dependency on GKE cluster and global load balancer. So the Federated Ingress resource can work only with GKE cluster in the Federation project.

The Federated Ingress Round Robin DNS Controller removes this restriction and allows the federated ingress to work with GKE cluster as well as other types of Kubernetes clusters such as AWS and Minikube. It creates DNS records for ingress endpoints and uses DNS server to do the routing. You can choose different DNS provider such as aws-route53, coredns, dyndns, and google-clouddns as the DNS server.

Federated Ingress Controller

Figure:1 Federated Ingress Round Robin DNS Controller Architecture
The Federated Ingress Round Robin DNS Controller architecture diagram explains how the controller distributes ingress resource to managed clusters. The cluster level ingress controller sets the *Status.LoadBalancer.Ingress* field on the cluster level ingress object with its external load balancer IP. The Federated Ingress Round Robin DNS Controller aggregates the value of the *Status.LoadBalancer.Ingress* field from managed clusters and sets the same value on the Federated Ingress resource. The DNS controller uses that value from Federated Ingress resource to create Round Robin A-records.

Build

Requirements:

  • Go 1.8.x

To build the Federated Ingress Controller:

get src:

  • export K8S_INCUBATOR_DIR="$GOPATH/src/github.com/kubernetes-incubator"
  • mkdir -p $K8S_INCUBATOR_DIR
  • cd $K8S_INCUBATOR_DIR
  • git clone https://github.com/oracle/federated-ingress-controller

build:

  • export DOCKER_REGISTRY=docker.io/changeme
  • make will cleanup, vet, run unit tests, build binary and image
  • make bin will build just the controller binary so it can run locally

docker image:

  • make image will produce a docker image containing the artifacts suitable for deploying to Kubernetes.
  • make push_image will produce a docker image containing the artifacts suitable for deploying to Kubernetes.

Contributions to this code are welcome! The code in this repository can be built and tested using the Makefile.

Deploy

Follow deploy instructions to deploy the Federated Ingress Controller.

Community, discussion, contribution, and support

Learn how to engage with the Kubernetes community on the community page.

You can reach the maintainers of this project at:

Kubernetes Incubator

This is a pending proposal for Kubernetes Incubator project. The incubator team for the project is:

  • Sponsor: tbd
  • Champion: tbd
  • SIG: sig-multicluster tbd

Code of conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

federated-ingress-controller's People

Contributors

honghzzhang avatar jwgish avatar klustria avatar schwankl avatar vitaliyzinchenko 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.