Skip to content

Commit 5588c00

Browse files
authored
docs: update resources and overview (#2430)
1 parent 67ad69a commit 5588c00

11 files changed

+219
-32
lines changed
-370 KB
Binary file not shown.
206 KB
Loading
171 KB
Loading
104 KB
Loading
150 KB
Loading

docs/concepts.md

Lines changed: 0 additions & 27 deletions
This file was deleted.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
title: Deployment Architecture
3+
keywords:
4+
- APISIX Ingress
5+
- Apache APISIX
6+
- Kubernetes Ingress
7+
- Gateway API
8+
---
9+
<!--
10+
#
11+
# Licensed to the Apache Software Foundation (ASF) under one or more
12+
# contributor license agreements. See the NOTICE file distributed with
13+
# this work for additional information regarding copyright ownership.
14+
# The ASF licenses this file to You under the Apache License, Version 2.0
15+
# (the "License"); you may not use this file except in compliance with
16+
# the License. You may obtain a copy of the License at
17+
#
18+
# http://www.apache.org/licenses/LICENSE-2.0
19+
#
20+
# Unless required by applicable law or agreed to in writing, software
21+
# distributed under the License is distributed on an "AS IS" BASIS,
22+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23+
# See the License for the specific language governing permissions and
24+
# limitations under the License.
25+
#
26+
-->
27+
28+
The APISIX Ingress Controller is used to manage the APISIX Gateway as either a standalone application or a Kubernetes-based application. It dynamically configures and manages the APISIX Gateway using Gateway API resources.
29+
30+
## Admin API Mode
31+
32+
In the traditional deployment approach, APISIX uses etcd as its configuration center, allowing administrators to dynamically manage routes, upstreams, and other resources through RESTful APIs. It supports distributed cluster deployments with real-time configuration synchronization.
33+
34+
![Admin API Architecture](../assets/images/ingress-admin-api-architecture.png)
35+
36+
## Standalone Mode (Experimental)
37+
38+
APISIX runs independently without relying on etcd, supporting two sub-modes - file-driven (managing configuration through conf/apisix.yaml files) and API-driven (storing configuration in memory with full configuration management through the dedicated /apisix/admin/configs endpoint).
39+
40+
This mode is particularly suitable for Kubernetes environments and single-node deployments, where the API-driven memory management approach combines the convenience of traditional Admin API with the simplicity of Standalone mode.
41+
42+
![Standalone Architecture](../assets/images/ingress-standalone-architecture.png)
Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,29 @@
1-
2-
# Gateway API
1+
---
2+
title: Gateway API
3+
keywords:
4+
- APISIX Ingress
5+
- Apache APISIX
6+
- Kubernetes Ingress
7+
- Gateway API
8+
---
9+
<!--
10+
#
11+
# Licensed to the Apache Software Foundation (ASF) under one or more
12+
# contributor license agreements. See the NOTICE file distributed with
13+
# this work for additional information regarding copyright ownership.
14+
# The ASF licenses this file to You under the Apache License, Version 2.0
15+
# (the "License"); you may not use this file except in compliance with
16+
# the License. You may obtain a copy of the License at
17+
#
18+
# http://www.apache.org/licenses/LICENSE-2.0
19+
#
20+
# Unless required by applicable law or agreed to in writing, software
21+
# distributed under the License is distributed on an "AS IS" BASIS,
22+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23+
# See the License for the specific language governing permissions and
24+
# limitations under the License.
25+
#
26+
-->
327

428
Gateway API is dedicated to achieving expressive and scalable Kubernetes service networking through various custom resources.
529

docs/concepts/resources.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
---
2+
title: APISIX Ingress Controller Resources
3+
keywords:
4+
- APISIX Ingress
5+
- Apache APISIX
6+
- Kubernetes Ingress
7+
- Gateway API
8+
description: APISIX Ingress Controller Resources, including Kubernetes resources, Gateway API, and APISIX Ingress Controller CRDs API.
9+
---
10+
<!--
11+
#
12+
# Licensed to the Apache Software Foundation (ASF) under one or more
13+
# contributor license agreements. See the NOTICE file distributed with
14+
# this work for additional information regarding copyright ownership.
15+
# The ASF licenses this file to You under the Apache License, Version 2.0
16+
# (the "License"); you may not use this file except in compliance with
17+
# the License. You may obtain a copy of the License at
18+
#
19+
# http://www.apache.org/licenses/LICENSE-2.0
20+
#
21+
# Unless required by applicable law or agreed to in writing, software
22+
# distributed under the License is distributed on an "AS IS" BASIS,
23+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24+
# See the License for the specific language governing permissions and
25+
# limitations under the License.
26+
#
27+
-->
28+
29+
## Kubernetes Resources
30+
31+
### Service
32+
33+
In Kubernetes, a Service is a method to expose network applications running on a set of Pods as network services.
34+
35+
When proxying ingress traffic, APISIX Gateway by default directs traffic directly to the Pods instead of through kube-proxy.
36+
37+
### EndpointSlices
38+
39+
EndpointSlice objects represent subsets (slices) of backend network endpoints for a Service.
40+
41+
The APISIX Ingress Controller continuously tracks matching EndpointSlice objects, and whenever the set of Pods in a Service changes, the set of Pods proxied by the APISIX Gateway will also update accordingly.
42+
43+
### Ingress
44+
45+
Ingress is a Kubernetes resource that manages external access to services within a cluster, typically HTTP and HTTPS traffic. It provides a way to define rules for routing external traffic to internal services.
46+
47+
## Gateway API
48+
49+
Gateway API is an official Kubernetes project focused on L4 and L7 routing in Kubernetes. This project represents the next generation of Kubernetes Ingress, Load Balancing, and Service Mesh APIs.
50+
51+
For more information on supporting Gateway API, please refer to [Gateway API](./gateway-api.md).
52+
53+
## APISIX Ingress Controller CRDs API
54+
55+
The APISIX Ingress Controller defines several Custom Resource Definitions (CRDs) to manage routing, upstreams, TLS, and cluster settings declaratively.
56+
57+
### Gateway API Extensions
58+
59+
Enable additional features not included in the standard Kubernetes Gateway API, developed and maintained by Gateway API implementers to extend functionality securely and reliably.
60+
61+
* GatewayProxy: Defines connection settings between the APISIX Ingress Controller and APISIX, including auth, endpoints, and global plugins. Referenced via parametersRef in Gateway, GatewayClass, or IngressClass
62+
63+
* BackendTrafficPolicy: Defines traffic management settings for backend services, including load balancing, timeouts, retries, and host header handling in the APISIX Ingress Controller.
64+
65+
* Consumer: Defines API consumers and their credentials, enabling authentication and plugin configuration for controlling access to API endpoints.
66+
67+
* PluginConfig: Defines reusable plugin configurations that can be referenced by other resources like HTTPRoute, enabling separation of routing logic and plugin settings for better reusability and manageability.
68+
69+
* HTTPRoutePolicy: Configures advanced traffic management and routing policies for HTTPRoute or Ingress resources, enhancing functionality without modifying the original resources.
70+
71+
![Gateway API Extensions Overview](../assets/images/gateway-api-extensions-resources.png)
72+
73+
## Ingress API Extensions
74+
75+
APISIX Ingress Controller CRDs extend Kubernetes functionality to provide declarative configuration management for the Apache APISIX gateway, supporting advanced routing, traffic management, and security policies.
76+
77+
* ApisixRoute: Defines routing rules for HTTP/TCP/UDP, supporting path matching, hostnames, method filtering, and backend service configurations. Can reference ApisixUpstream and ApisixPluginConfig resources.
78+
79+
* ApisixUpstream: Extends Kubernetes Services with advanced configurations such as load balancing, health checks, retries, timeouts, and service subset selection.
80+
81+
* ApisixConsumer: Defines API consumers and their authentication credentials, supporting methods like basicAuth, keyAuth, jwtAuth, hmacAuth, wolfRBAC, and ldapAuth.
82+
83+
* ApisixPluginConfig: Defines reusable plugin configurations referenced by ApisixRoute through the plugin_config_name field, promoting separation of routing logic and plugin settings.
84+
85+
* ApisixTls: Manages SSL/TLS certificates, supporting SNI binding and mutual TLS for secure APISIX gateway connections.
86+
87+
![V2 CRDs Overview](../assets/images/v2-crds-api-resources.png)

docs/configure.md

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,30 @@
1-
# Configure
1+
---
2+
title: Configuration
3+
keywords:
4+
- APISIX Ingress
5+
- Apache APISIX
6+
- Kubernetes Ingress
7+
- Gateway API
8+
description: Configuration of the APISIX Ingress Controller
9+
---
10+
<!--
11+
#
12+
# Licensed to the Apache Software Foundation (ASF) under one or more
13+
# contributor license agreements. See the NOTICE file distributed with
14+
# this work for additional information regarding copyright ownership.
15+
# The ASF licenses this file to You under the Apache License, Version 2.0
16+
# (the "License"); you may not use this file except in compliance with
17+
# the License. You may obtain a copy of the License at
18+
#
19+
# http://www.apache.org/licenses/LICENSE-2.0
20+
#
21+
# Unless required by applicable law or agreed to in writing, software
22+
# distributed under the License is distributed on an "AS IS" BASIS,
23+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24+
# See the License for the specific language governing permissions and
25+
# limitations under the License.
26+
#
27+
-->
228

329
The APISIX Ingress Controller is a Kubernetes Ingress Controller that implements the Gateway API. This document describes how to configure the APISIX Ingress Controller.
430

0 commit comments

Comments
 (0)