GithubHelp home page GithubHelp logo

lyt99 / apisix-ingress-controller Goto Github PK

View Code? Open in Web Editor NEW

This project forked from apache/apisix-ingress-controller

0.0 0.0 0.0 8.38 MB

ingress controller for K8s

Home Page: https://apisix.apache.org/

License: Apache License 2.0

Dockerfile 0.23% Go 97.97% Makefile 0.51% Shell 1.15% Open Policy Agent 0.15%

apisix-ingress-controller's Introduction

Apache APISIX for Kubernetes

Go Report Card

Use Apache APISIX for Kubernetes Ingress.

All configurations in apisix-ingress-controller are defined with Kubernetes CRDs (Custom Resource Definitions). Support configuring plugins, 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:

Architecture

Status

This project is currently general availability.

Features

  • 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 and v1beta1) support.
  • Auto register k8s endpoint to upstream (Apache APISIX) node.
  • Support load balancing based on pod (upstream nodes).
  • Out of box support for node health check.
  • Plug-in extension supports hot configuration and immediate effect.
  • Support SSL and mTLS for routes.
  • Support traffic split and canary deployments.
  • Support TCP 4 layer proxy.
  • Ingress controller itself as a pluggable hot-reload component.
  • Multi-cluster configuration distribution.

More about comparison among multiple Ingress Controllers.

Internal Architecture

module

Prerequisites

Apisix ingress controller requires Kubernetes version 1.16+. Because we used CustomResourceDefinition v1 stable API. From the version 1.0.0, APISIX-ingress-controller need to work with Apache APISIX version 2.7+.

Apache APISIX Ingress vs. Kubernetes Ingress Nginx

Contributor over time

Contributor over time

Get started

Todos

  • Support UDP definition. #116
  • Support GRPC definition. #114
  • Add a complete demo. #9
  • More todos will display in issues

Documents

FAQ

User stories

Contributing

We welcome all kinds of contributions from the open-source community, individuals and partners.

Community

  • Mailing List: Mail to [email protected], follow the reply to subscribe the mailing list.
  • QQ Group - 578997126
  • Twitter Follow - follow and interact with us using hashtag #ApacheAPISIX
  • Bilibili video

Milestone

Terminology

  • Ingress APISIX: the whole service that contains the proxy (Apache APISIX) and ingress controller (apisix ingress controller).
  • apisix-ingress-controller: the ingress controller component.

License

Apache License 2.0

apisix-ingress-controller's People

Contributors

baoyuantop avatar chzhuo avatar dayongi avatar dmsolr avatar donghui0 avatar fgksgf avatar fhuzero avatar firstsawyou avatar fredster33 avatar guoqqqi avatar gxthrj avatar jbampton avatar junnplus avatar juzhiyuan avatar kishanikandasamy avatar lianghao208 avatar lingsamuel avatar lxm avatar masfbeca avatar mayocream avatar nevercase avatar nic-6443 avatar okaybase avatar sindweller avatar stu01509 avatar tao12345666333 avatar tokers avatar vincenthcui avatar yiyiyimu avatar zaunist 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.