Skip to content

Latest commit

 

History

History
159 lines (131 loc) · 5.7 KB

getting-started.md

File metadata and controls

159 lines (131 loc) · 5.7 KB
title keywords description
Getting started
APISIX ingress
Apache APISIX
Kubernetes ingress
Guide to get started with Apache APISIX ingress controller.

import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';

APISIX ingress controller is a Kubernetes ingress controller using Apache APISIX as the high performance reverse proxy.

APISIX ingress controller can be configured using the native Kubernetes Ingress or Gateway API as well as with the declarative and easy to use custom resources provided by APISIX. The APISIX ingress controller converts these resources to APISIX configuration.

The examples below show how these differ. Both the examples configure a Route in APISIX that routes to an httpbin service as the Upstream.

<Tabs groupId="resources" defaultValue="apisix" values={[ {label: 'APISIX Ingress CRD', value: 'apisix'}, {label: 'Kubernetes Ingress API', value: 'ingress'}, {label: 'Kubernetes Gateway API', value: 'gateway'}, ]}>

apiVersion: apisix.apache.org/v2
kind: ApisixRoute
metadata:
  name: httpbin-route
spec:
  http:
    - name: route-1
      match:
        hosts:
          - local.httpbin.org
        paths:
          - /*
      backends:
        - serviceName: httpbin
          servicePort: 80
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: httpbin-route
spec:
  ingressClassName: apisix
  rules:
    - host: local.httpbin.org
      http:
        paths:
          - backend:
              service:
                name: httpbin
                port:
                  number: 80
            path: /
            pathType: Prefix
apiVersion: gateway.networking.k8s.io/v1alpha2
kind: HTTPRoute
metadata:
  name: httpbin-route
spec:
  hostnames:
  - local.httpbin.org
  rules:
  - matches:
    - path:
        type: PathPrefix
        value: /
    backendRefs:
    - name: httpbin
      port: 80

APISIX ingress controller defines the CRDs ApisixRoute, ApisixUpstream, ApisixTls, and ApisixClusterConfig.

APISIX also supports service discovery through Kubernetes service abstraction.

scene

See Design to learn more about how APISIX ingress controller works under the hood.

Features

To summarize, APISIX ingress controller has the following features:

  • Declarative configuration with CRDs.
  • Fully dynamic configuration.
  • Supports native Kubernetes Ingress resource (both v1 and v1beta1).
  • Supports service discovery through Kubernetes Service.
  • Out-of-the-box node health check support.
  • Supports load balancing based on pods (Upstream nodes).
  • Rich Plugins with custom Plugin support.

Get involved

You can contribute to the development of APISIX ingress controller. See Development guide for instructions on setting up the project locally.

See the Contribute to APISIX section for details on the contributing flow.

Compatibility with APISIX

The table below shows the compatibility between APISIX ingress controller and the APISIX proxy.

APISIX ingress controller Supported APISIX versions Recommended APISIX version
master >= 2.15, >=3.0 3.1
1.6.0 >= 2.15, >=3.0 2.15, 3.0
1.5.0 >= 2.7 2.15
1.4.0 >= 2.7 2.11
1.3.0 >= 2.7 2.10
1.2.0 >= 2.7 2.8
1.1.0 >= 2.7 2.7
1.1.0 >= 2.7 2.7
1.0.0 >= 2.7 2.7
0.6 >= 2.6 2.6
0.5 >= 2.4 2.5
0.4 >= 2.4