apisix-ingress-controller

command module
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 14, 2021 License: Apache-2.0 Imports: 3 Imported by: 0

README

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). 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:

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.15+. 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

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

Documentation

Overview

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Directories

Path Synopsis
cmd
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
ingress
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
pkg
api
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
api/router
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
apisix
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
config
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
id
ingress
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
kube
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
kube/apisix/apis/config/v1
+groupName=apisix.apache.org Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
+groupName=apisix.apache.org Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
kube/apisix/apis/config/v2alpha1
+groupName=apisix.apache.org Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
+groupName=apisix.apache.org Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
kube/apisix/apis/config/v2beta1
+k8s:deepcopy-gen=package +groupName=apisix.apache.org Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
+k8s:deepcopy-gen=package +groupName=apisix.apache.org Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
kube/apisix/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
kube/apisix/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
kube/apisix/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
kube/apisix/client/clientset/versioned/typed/config/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
kube/apisix/client/clientset/versioned/typed/config/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
kube/apisix/client/clientset/versioned/typed/config/v2alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
kube/apisix/client/clientset/versioned/typed/config/v2alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
kube/apisix/client/clientset/versioned/typed/config/v2beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
kube/apisix/client/clientset/versioned/typed/config/v2beta1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
kube/translation
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
kube/translation/annotations
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
log
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
metrics
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
types
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
types/apisix/v1
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
version
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
test
e2e Module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL