You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/http/http-installation-guide.md
+37-18Lines changed: 37 additions & 18 deletions
Original file line number
Diff line number
Diff line change
@@ -203,7 +203,7 @@ The Nginx Ingress Controller in this Solution is the destination target for traf
203
203
The NGINX Ingress Controller in this Solution is the destination target for traffic (north-south) that is being sent to the cluster(s). The installation of the actual Ingress Controller is outside the scope of this guide, but the links to the docs are included for your reference. `The NIC installation using Manifests must follow the documents exactly as written,` as this Solution depends on the `nginx-ingress` namespace and service objects. **Only the very last step is changed.**
204
204
>>>>>>> change to NGINX
205
205
206
-
**NOTE:** This Solution only works with `nginx-ingress from NGINX`. It will `not` work with the K8s Community version of Ingress, called ingress-nginx.
206
+
**NOTE:** This Solution only works with `nginx-ingress from NGINX`. It will not work with the K8s Community version of Ingress, called ingress-nginx.
207
207
208
208
If you are unsure which Ingress Controller you are running, check out the blog on nginx.com:
- Plus Dashboard enabled, used for testing, monitoring, and visualization of the Solution working.
985
985
- The `http` context is used for MultiCluster Loadbalancing, for HTTP/S processing, Split Clients ratio, and prometheus exporting.
986
986
- Plus KeyValue store is configured, to hold the dynamic Split ratio metadata.
987
-
- Plus Zone Sync on Port 9001 is configured, to synchronize the dynamic KVstore data between multiple NGINX LB Servers.
987
+
- Plus Zone Sync on Port 9001 is configured, to synchronize the dynamic KeyVal data between multiple NGINX LB Servers.
988
988
989
989
<br/>
990
990
@@ -1295,7 +1295,7 @@ server {
1295
1295
1296
1296
```
1297
1297
1298
-
- High Availability: If you have 2 or more NGINX Plus LB Servers, you can use Zone Sync to synchronize the Split Key Value Store 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.
1298
+
- 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.
1299
1299
1300
1300
```bash
1301
1301
cat zonesync.conf
@@ -1314,15 +1314,15 @@ server {
1314
1314
1315
1315
listen 9001;
1316
1316
1317
-
#cluster of 2 nodes
1317
+
#Zone Sync with 2 nodes
1318
1318
zone_sync_server 10.1.1.4:9001;
1319
1319
zone_sync_server 10.1.1.5:9001;
1320
1320
1321
1321
}
1322
1322
1323
1323
```
1324
1324
1325
-
Watching the NGINX Plus Dashboard, you will see messages sent/received if Zone Synch is operating correctly:
1325
+
Watching the NGINX Plus Dashboard, Cluster Tab, you will see messages sent/received if Zone Sync is operating correctly:
1326
1326
1327
1327

1328
1328
@@ -1336,7 +1336,7 @@ Watching the NGINX Plus Dashboard, you will see messages sent/received if Zone S
1336
1336
1337
1337
<br/>
1338
1338
1339
-
This is the new K8s Controller from NGINX, which is configured to watch the k8s environment, the `nginx-ingress Service` object, and send API updates to the NGINX LB Server when there are changes. It only requires three things.
1339
+
### This is the new K8s Controller from NGINX, which is configured to watch the k8s environment, the `nginx-ingress Service` object, and send API updates to the NGINX LB Server when there are changes. It only requires three things:
1340
1340
1341
1341
- New kubernetes namespace and RBAC
1342
1342
- NKL ConfigMap, to configure the Controller
@@ -1421,7 +1421,7 @@ kubectl get svc nginx-ingress -n nginx-ingress
Note: K8s Control Nodes are excluded from the list intentionally.
1471
1472
@@ -1525,6 +1526,9 @@ Note: K8s Control Nodes are excluded from the list intentionally.
1525
1526
`The NKL Controller detects this change, and modifies the LB Server(s) upstreams to match.` The Dashboard will show you the new Port numbers, matching the new LoadBalancer or NodePort definitions. The NKL logs show these messages, confirming the changes:
1526
1527
=======
1527
1528
Notice: K8s Control Nodes are excluded from the list intentionally.
1529
+
=======
1530
+
Note: K8s Control Nodes are excluded from the list intentionally.
1531
+
>>>>>>> add prometheus
1528
1532
1529
1533
<br/>
1530
1534
@@ -1546,7 +1550,7 @@ Using a Terminal and `./kube Context set for Cluster1`, delete the `nginx-ingres
1546
1550
kubectl delete -f nodeport-cluster1.yaml
1547
1551
```
1548
1552
1549
-
Now the `nginx-ingress` Service is gone, and the Cluster1 upstream list will now be empty in the Dashboard.
1553
+
Now the `nginx-ingress` Service is gone, and the Cluster1 upstream list will now be empty in the Dashboard. The NKL Logs will show that it has `DELETED` the upstream servers!
1550
1554
1551
1555

1552
1556
Legend:
@@ -1655,27 +1659,38 @@ The only tool you need for this, is an HTTP load generation tool. WRK, running
1655
1659
## 7. Testing MultiCluster Loadbalancing with HTTP Split Clients
1656
1660
>>>>>>> change to NGINX
1657
1661
1662
+
<br/>
1663
+
1658
1664
In this section, you will generate some HTTP load on the NGINX LB Server, and watch as it sends traffic to both Clusters. Then you will `dynamically change the Split ratio`, and watch NGINX send different traffic levels to each cluster.
1659
1665
1660
1666
The only tool you need for this, is an HTTP load generation tool. WRK, running in a docker container outside the cluster is what is shown here.
1661
1667
1662
1668
Start WRK, on a client outside the cluster. This command runs WRK for 15 minutes, targets the NGINX LB Server URL of https://10.1.1.4/coffee. The host header is required, cafe.example.com, as NGINX is configured for this server_name. (And so is the NGINX Ingress Controller).
1663
1669
1670
+
In these test examples, the Nginx LB Servers and IPs in the hosts file are:
If the KV data is missing on one LB Server, your Zone Sync must be fixed.
1687
1702
1688
-
>Notice the difference in HTTP Response Times, Cluster2 is running much faster than Cluster1! (The Red and Green highlights on the Dashboard)
1703
+
>Notice the difference in HTTP Response Times in the Dashboard, highlighted in Red and Green: Cluster2 is responding much faster than Cluster1! (The Red and Green highlights on the Dashboard).
1689
1704
1690
-
So, you decide to send less traffic to Cluster1, and more to Cluster2. You will set the HTTP Split ratio to 10/90 = 10% to Cluster1, 90% to Cluster2.
1705
+
So, you decide to send less traffic to Cluster1, and more to Cluster2. You will set the HTTP Split ratio to 10:90 = 10% to Cluster1, 90% to Cluster2.
1691
1706
1692
-
Remember: This Solution example configures NGINX for Cluster1 to use the Split value, and the remaining percentage of traffic is sent to Cluster2.
1707
+
Remember: This Split Clients example configures NGINX for Cluster1 to use the Split KeyValue, and the remaining percentage of traffic is sent to Cluster2.
1693
1708
1694
1709
Change the KV Split Ratio to 10:
1695
1710
```bash
@@ -1718,8 +1733,6 @@ The Completes the Testing Section.
0 commit comments