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.
AKO runs as a POD inside the kubernetes cluster.
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
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
Simply run:
Step1:
helm delete <ako-release-name> -n avi-system
Step 2:
kubectl delete ns avi-system
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
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.
AKO is licensed under the Apache License, version 2.0