Git Product home page Git Product logo

load-balancer-and-ingress-services-for-kubernetes's Introduction

Load Balancer and Ingress Services for Kubernetes

Architecture

The Avi K8s Operator (AKO) is used to provide L4-L7 load balancing for applications deployed in a kubernetes cluster for north-south traffic.

The AKO controller ingests the Kubernetes API server object updates to construct corresponding objects in the Avi controller. The Avi controller then programs the datapath using appropriate APIs to enable traffic routing for requested applications.

Alt text

Run AKO

AKO runs as a POD inside the kubernetes cluster.

Pre-requisites

To Run AKO you need the following pre-requisites (on-prem clusters):

  • Step 1: An Avi Controller with a vCenter cloud or No Access Cloud configured.

  • Step 2: If your POD CIDRs are not routable:

    • Configure the vip network in the values.yaml of AKO.
    • Also provide the backend network information (from 1.2.1 onwards).

For additional settings related to values.yaml pls refer here

  • Step 2.1: If your POD CIDRs are routable (or you are using the NodePort mode), you don't have to worry about the backend network.
  • Step 3: Kubernetes 1.16+.
  • Step 4: helm cli pointing to your kubernetes cluster.

NOTE: We only support helm 3.0 and above. For a more detailed installation instruction pls refer here

Install using helm

Step 1: Create the avi-system namespace:

kubectl create ns avi-system

Step 2: Clone this repository, go inside the helm directory and run:

helm install ./ako --name my-ako-release --namespace=avi-system --set configs.controllerIP=10.10.10.10

Use the helm/ako/values.yaml to edit values related to Avi configuration. A list of editable parameters can be found here

Uninstall using helm

Simply run:

Step1:

helm delete <ako-release-name> -n avi-system

Step 2:

kubectl delete ns avi-system

Build and Test

AKO can be built as a docker container using the make command. Simply clone the repository and run:

make docker

AKO runs a simulation of the Kubernetes APIs using the kubernetes FakeClient and it also simulates the Avi controller by exploiting the httptest server from golang. In order to run the end to end unit tests, you can execute:

make int_test

Contributing

We welcome new contributors to our repository. Following are the pre-requisties that should help you get started:

  • Before contributing, please get familiar with our Code of Conduct.
  • Check out our Contributor Guide for information about setting up your development environment and our contribution workflow.
  • Check out Open Issues.
  • ako-dev to participate in discussions on AKO's development.

License

AKO is licensed under the Apache License, version 2.0

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.