Skip to content

Commit 24c28ce

Browse files
committed
Review feedback
1 parent f25a311 commit 24c28ce

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

content/ngf/overview/gateway-architecture.md

+11-10
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ The NGINX Gateway Fabric architecture separates the control plane and data plane
3636

3737
### Control Plane: Centralized Management
3838

39-
The control plane operates as the `nginx-gateway` Deployment, serving as a [Kubernetes controller](https://kubernetes.io/docs/concepts/architecture/controller/) built with the [controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) library. It manages all aspects of resource provisioning and configuration for the NGINX data planes by watching Gateway API resources and other Kubernetes objects such as Services, Endpoints, and Secrets.
39+
The control plane operates as a Deployment, serving as a [Kubernetes controller](https://kubernetes.io/docs/concepts/architecture/controller/) built with the [controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) library. It manages all aspects of resource provisioning and configuration for the NGINX data planes by watching Gateway API resources and other Kubernetes objects such as Services, Endpoints, and Secrets.
4040

4141
Key functionalities include:
4242

@@ -49,7 +49,7 @@ Key functionalities include:
4949
Each NGINX data plane pod is provisioned as an independent Deployment containing an `nginx` container. This container runs both the `nginx` process and the [NGINX agent](https://github.com/nginx/agent), which is responsible for:
5050

5151
- Applying configurations: The agent receives updates from the control plane and applies them to the NGINX instance.
52-
- Handling reloads: Configuration reconciliation and reloads are executed remotely through the gRPC interface, eliminating the need for shared volumes or Unix signals between the control plane and data plane pods.
52+
- Handling reloads: NGINX Agent handles configuration reconciliation and reloading NGINX, eliminating the need for shared volumes or Unix signals between the control plane and data plane pods.
5353

5454
With this design, multiple NGINX data planes can be managed by a single control plane, enabling fine-grained, Gateway-specific control and isolation.
5555

@@ -58,7 +58,6 @@ With this design, multiple NGINX data planes can be managed by a single control
5858
The architecture supports flexible operation and isolation across multiple Gateways:
5959

6060
- Concurrent Gateways: Multiple Gateway objects can run simultaneously within a single installation.
61-
- Flexible Gateway management: Gateways can be managed via distinct GatewayClasses, allowing configuration isolation where needed.
6261
- 1:1 resource mapping: Each Gateway resource corresponds uniquely to a dedicated data plane deployment, ensuring clear delineation of ownership and operational segregation.
6362

6463
### Resilience and Fault Isolation
@@ -296,18 +295,19 @@ graph TD
296295
%% gRPC: Configuration Updates
297296
NGFProcess -- "(6) Sends Config to Agent" --> NGINXAgent
298297
NGINXAgent -- "(7) Validates Config & Writes TLS Certs" --> ConfigFiles
299-
NGINXAgent -- "(8) Sends DataPlaneResponse" --> NGFProcess
298+
NGINXAgent -- "(8) Reloads NGINX" --> NGINXMaster
299+
NGINXAgent -- "(9) Sends DataPlaneResponse" --> NGFProcess
300300
301301
%% File I/O: Configuration and Secrets
302-
NGINXMaster -- "(9) Reads TLS Secrets" --> ConfigFiles
303-
NGINXMaster -- "(10) Reads nginx.conf & NJS Modules" --> ConfigFiles
302+
NGINXMaster -- "(10) Reads TLS Secrets" --> ConfigFiles
303+
NGINXMaster -- "(11) Reads nginx.conf & NJS Modules" --> ConfigFiles
304304
305305
%% Signals: Worker Lifecycle Management
306-
NGINXMaster -- "(13) Manages Workers (Update/Shutdown)" --> NGINXWorker
306+
NGINXMaster -- "(14) Manages Workers (Update/Shutdown)" --> NGINXWorker
307307
308308
%% Traffic Flow
309-
Client -- "(14) Sends Traffic" --> NGINXWorker
310-
NGINXWorker -- "(15) Routes Traffic" --> Backend
309+
Client -- "(15) Sends Traffic" --> NGINXWorker
310+
NGINXWorker -- "(16) Routes Traffic" --> Backend
311311
312312
%% Styling
313313
classDef important fill:#66CDAA,stroke:#333,stroke-width:2px;
@@ -338,7 +338,8 @@ Prometheus is **not** required by NGINX Gateway Fabric, and its endpoint can be
338338
- Agent calls GetFile for each file in the list, which NGF sends back to the agent.
339339
1. (File I/O)
340340
- Write: __NGINX Agent_ validates the received configuration, and then writes and applies the config if valid. It also writes _TLS certificates_ and _keys_ from [TLS secrets](https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets) referenced in the accepted Gateway resource.
341-
1. (gRPC) Agent updates nginx, and responds with a DataPlaneResponse.
341+
1. (Signal) To reload NGINX, Agent sends the reload signal to the NGINX master.
342+
1. (gRPC) Agent responds to NGF with a DataPlaneResponse.
342343
1. (File I/O)
343344
- Read: The _NGINX master_ reads _configuration files_ and the _TLS cert and keys_ referenced in the configuration when it starts or during a reload.
344345
1. (File I/O)

0 commit comments

Comments
 (0)