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 apisix-ingress-controller
:
This project is currently considered experimental.
- Declarative configuration for Apache APISIX with Custom Resource Definitions(CRDs), using k8s yaml struct with minimum learning curve.
- Hot-reload during yaml apply.
- Native Kubernetes Ingress (both
v1
andv1beta1
) support. - Auto register k8s endpoint to upstream (Apache APISIX) node.
- Out of box support for node health check.
- Support load balancing based on pod (upstream nodes).
- Plug-in extension supports hot configuration and immediate effect.
- Ingress controller itself as a pluggable hot-reload component.
- Multi-cluster configuration distribution.
Apisix ingress controller requires Kubernetes version 1.14+.
- Support UDP definition. #116
- Support TCP definition. #115
- Support GRPC definition. #114
- Add a complete demo. #9
- More todos will display in issues
- aispeech: Why we create a new k8s ingress controller?(Chinese)
- Tencent Cloud: Why choose Apache APISIX to implement the k8s ingress controller?(Chinese)
We welcome all kinds of contributions from the open-source community, individuals and partners.
- Mailing List: Mail to [email protected], follow the reply to subscribe the mailing list.
- QQ Group - 578997126
- follow and interact with us using hashtag
#ApacheAPISIX
- Bilibili video
- Ingress APISIX: the whole service that contains the proxy (Apache APISIX) and ingress controller (apisix ingress controller).
- apisix-ingress-controller: the ingress controller component.