Skip to content
This repository was archived by the owner on Aug 22, 2025. It is now read-only.

Commit 8f127dc

Browse files
committed
add loadbalancer files
1 parent efb9526 commit 8f127dc

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

docs/http/http-installation-guide.md

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616
### This Solution from NGINX provides Enterprise class features which address common challenges with networking, traffic management, and High Availability for On-Premises Kubernetes Clusters.
1717

1818
1. Provides a `replacement Loadbalancer Service.` The Loadbalancer Service is a key component provided by most Cloud Providers. However, when running a K8s Cluster On Premises, the `Loadbalancer Service is not available.`
19-
This Solution provides a replacement, using an NGINX Server, and a new K8s Controller from NGINX. These two components work together to watch the `NodePort Service` in the cluster, and immediately update the NGINX LB Server when changes occur.
20-
>No static `ExternalIP` needed in your loadbalancer.yaml Manifests!
19+
This Solution provides a replacement, using an NGINX Server, and a new K8s Controller from NGINX. These two components work together to watch the `nginx-ingress Service` in the cluster, and immediately update the NGINX LB Server when changes occur.
2120
2. Provides `MultiCluster Load Balancing`, traffic steering, health checks, TLS termination, advanced LB algorithms, and enhanced metrics.
2221
3. Provides dynamic, ratio-based Load Balancing for Multiple Clusters. This allows for advanced traffic steering, and operation efficiency with no Reloads or downtime.
2322
- MultiCluster Active/Active Load Balancing
@@ -55,7 +54,7 @@ This Solution provides a replacement, using an NGINX Server, and a new K8s Contr
5554
- Demo application, this install guide uses the NGINX Cafe example, found here: https://github.com/nginxinc/kubernetes-ingress/tree/main/examples/ingress-resources/complete-example
5655
- A bare metal Linux server or VM for the external NGINX LB Server, connected to a network external to the cluster. Two of these will be required if High Availability is needed, as shown here.
5756
- NGINX Plus software loaded on the LB Server(s). This install guide follows the instructions for installing NGINX Plus on Centos 7, located here: https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-plus/
58-
- The NGINX Kubernetes Loadbalancer (NKL) Controller, new software for this Solution.
57+
- The NGINX Kubernetes Loadbalancer (NKL) Controller, new software from Nginx for this Solution.
5958

6059
<br/>
6160

@@ -67,7 +66,7 @@ This Solution provides a replacement, using an NGINX Server, and a new K8s Contr
6766

6867
<br/>
6968

70-
A standard K8s cluster is all that is required, two or more Clusters if you want the `Active/Active MultiCluster Load Balancing Solution` using HTTP Split Clients. There must be enough resources available to run the NGINX Ingress Controller, and the NGINX Kubernetes Loadbalancer Controller, and test application like the Cafe Demo. You must have administrative access to be able to create the namespace, services, and deployments for this Solution. This Solution was tested on Kubernetes version 1.23. Most recent versions => v1.21 should work just fine.
69+
A standard K8s cluster is all that is required, two or more Clusters if you want the `Active/Active MultiCluster Load Balancing Solution` using HTTP Split Clients. There must be enough resources available to run the NGINX Ingress Controller, and the NGINX Kubernetes Loadbalancer Controller, and test application like the Cafe Demo. You must have administrative access to be able to create the namespace, services, and deployments for this Solution. This Solution was tested on Kubernetes version 1.23.
7170

7271
<br/>
7372

@@ -100,7 +99,7 @@ https://www.nginx.com/blog/guide-to-choosing-ingress-controller-part-4-nginx-ing
10099

101100
This is not part of the actual Solution, but it is useful to have a well-known application running in the cluster, as a known-good target for test commands. The example provided here is used by the Solution to demonstrate proper traffic flows.
102101

103-
Note: If you choose a different Application to test with, `the NGINX health checks provided here will likely NOT work,` and will need to be modified to work correctly.
102+
Note: If you choose a different Application to test with, `the NGINX configurations and health checks provided here may not work,` and will need to be modified to work correctly.
104103

105104
- Use the provided Cafe Demo manifests in the docs/cafe-demo folder:
106105

@@ -114,7 +113,7 @@ Note: If you choose a different Application to test with, `the NGINX health chec
114113

115114
https://github.com/nginxinc/kubernetes-ingress/tree/main/examples/ingress-resources/complete-example
116115

117-
- The Cafe Demo Docker image used here is an upgraded one, with simple graphics and additional Request and Response variables added.
116+
- The Cafe Demo Docker image used here is an upgraded one, with simple graphics and additional TCP/IP and HTTP variables added.
118117

119118
https://hub.docker.com/r/nginxinc/ingress-demo
120119

@@ -133,7 +132,7 @@ Note: If you choose a different Application to test with, `the NGINX health chec
133132

134133
<br/>
135134

136-
This is any standard Linux OS system, based on the Linux Distro and Technical Specs required for NGINX Plus, which can be found here: https://docs.nginx.com/nginx/technical-specs/
135+
This can be any standard Linux OS system, based on the Linux Distro and Technical Specs required for NGINX Plus, which can be found here: https://docs.nginx.com/nginx/technical-specs/
137136

138137
This Solution followed the `Installation of NGINX Plus on Centos/Redhat/Oracle` steps for installing NGINX Plus.
139138

@@ -289,11 +288,17 @@ stream {
289288

290289
```
291290

292-
- Configure NGINX for HTTP processing, load balancing, and MultiCluster split clients for this Solution.
291+
- Configure NGINX for HTTP traffic processing, load balancing, and MultiCluster Split Clients for this Solution.
293292

294-
`Notice that this Solution only uses port 443 and terminates TLS.`
293+
`Notice that this example Solution only uses port 443 and terminates TLS.`
295294

296-
Place the `clusters.conf` file in the /etc/nginx/conf.d folder, and reload NGINX. Notice the match block and health check directives are for the cafe.example.com Demo application from NGINX.
295+
If you need a self-signed TLS cert/key, use openssl, and place both files in the /etc/ssl/nginx folder.
296+
297+
```bash
298+
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout default.key -out default.crt -subj "/CN=NKL"
299+
```
300+
301+
- Place the `clusters.conf` file in the /etc/nginx/conf.d folder, and reload NGINX. Notice the match block and health check directives are for the cafe.example.com Demo application from NGINX.
297302

298303
```bash
299304
cat /etc/nginx/conf.d/clusters.conf
@@ -474,7 +479,7 @@ server {
474479

475480
```
476481

477-
- High Availability: If you have 2 or more NGINX Plus LB Servers, you can use Zone Sync to synchronize the KeyValue SplitRatio data between the NGINX Servers automatically. Use the `zonesync.conf` example file provided, change the IP addresses to match your NGINX LB Servers. Place this file in /etc/nginx/stream folder, and reload NGINX. Note: This example does not provide any security for the Zone Sync traffic, secure as necessary with TLS or IP allowlist.
482+
- High Availability: If you have 2 or more NGINX Plus LB Servers, you can use Zone Sync to synchronize the KeyValue SplitRatio data between the NGINX Servers automatically. Use the `zonesync.conf` example file provided, change the IP addresses to match your NGINX LB Servers. Place this file in /etc/nginx/stream folder on each LB Server, and reload NGINX. Note: This example does not provide any security for the Zone Sync traffic, secure as necessary with TLS or IP allowlist.
478483

479484
```bash
480485
cat zonesync.conf

0 commit comments

Comments
 (0)