Use Apache APISIX for Kubernetes Ingress.
All configurations in
apisix-ingress-controller are defined with Kubernetes CRDs (Custom Resource Definitions). Such as configure plugins, Support service registration discovery mechanism for upstreams, load balancing and more in Apache APISIX.
apisix-ingress-controller is an Apache APISIX control plane component. Currently it serves for Kubernetes clusters. In the future, we plan to separate the submodule to adapt to more deployment modes, such as virtual machine clusters.
The technical architecture of
This project is currently considered experimental.
Define the CRD(CustomResourceDefinition) needed by Apache APISIX
Currently supports ApisixRoute/ApisixService/ApisixUpstream，and other service and route level plugins.
Can be packaged as a stand-alone binary, keep in sync with the ingress definition.
Define interface objects to match concepts from Apache APISIX like route, service, upstream, and plugin.
Can be a packaged as a stand-alone binary, need to match with compatible Apache APISIX version.
Add new types to this module to support new features.
Contain main application logic.
Sync the k8s cluster states to Apache APISIX, based on Apisix-types object.
Driver process for ingress controller, watches k8s apiserver.
Match and covert Apisix-ingress-types to Apisix-types before handing the control over to the above module
Get more implementation details.
We welcome all kinds of contributions from the open-source community, individuals and partners.
Apache License 2.0