Skip to content

Commit fa006a8

Browse files
committed
NLB-6740 Updated the README doc
Updating the original NLK README to bring it in line with the latest architectural changes.
1 parent 171d10b commit fa006a8

File tree

2 files changed

+38
-73
lines changed

2 files changed

+38
-73
lines changed

README.md

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<!-- markdownlint-disable-next-line first-line-h1 -->
12
[![CI](https://github.com/nginxinc/nginx-loadbalancer-kubernetes/actions/workflows/build-test.yml/badge.svg)](https://github.com/nginxinc/nginx-loadbalancer-kubernetess/actions/workflows/build-test.yml)
23
[![Go Report Card](https://goreportcard.com/badge/github.com/nginxinc/nginx-loadbalancer-kubernetes)](https://goreportcard.com/report/github.com/nginxinc/nginx-loadbalancer-kubernetes)
34
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
@@ -8,16 +9,13 @@
89
[![Community Support](https://badgen.net/badge/support/community/cyan?icon=awesome)](https://github.com/nginxinc/nginx-loadbalancer-kubernetes/discussions)
910
[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
1011

11-
12-
1312
<div style="margin-bottom: 5em;">
1413
<span>
1514
<img style="float: left;" src="nlk-logo.svg" width="124" />
1615
<h2 style="padding: 1.5em">nginx-loadbalancer-kubernetes</h2>
1716
</span>
1817
</div>
1918

20-
2119
The NGINX Loadbalancer for Kubernetes, or _NLK_, is a Kubernetes controller that provides TCP load balancing external to a Kubernetes cluster running on-premise.
2220

2321
## Requirements
@@ -70,7 +68,7 @@ NLK itself does not perform load balancing. Rather, NLK allows you to manage Ser
7068
There are few bits of administrivia to get out of the way before you can start leveraging NLK for your load balancing needs.
7169

7270
As noted above, NLK is intended for when you have one or more Kubernetes clusters running on-premise. In addition to this,
73-
you need to have at least one NGINX Plus host running outside your cluster (Please refer to the [Roadmap](#Roadmap) for information about other load balancer servers).
71+
you need to have at least one NGINX Plus host running outside your cluster (Please refer to the [Roadmap](#roadmap) for information about other load balancer servers).
7472

7573
### Deployment
7674

@@ -107,27 +105,27 @@ There is a much more detailed [Installation Reference](docs/README.md) available
107105

108106
1. Clone this repo (optional, you can simply copy the `deployments/` directory)
109107

110-
```git clone [email protected]:nginxinc/nginx-loadbalancer-kubernetes.git```
108+
```git clone [email protected]:nginxinc/nginx-loadbalancer-kubernetes.git```
111109

112-
2. Apply the Namespace
110+
1. Apply the Namespace
113111

114-
```kubectl apply -f deployments/deployment/namespace.yaml```
112+
```kubectl apply -f deployments/deployment/namespace.yaml```
115113

116-
3. Apply the RBAC resources
114+
1. Apply the RBAC resources
117115

118-
```./deployments/rbac/apply.sh```
116+
```./deployments/rbac/apply.sh```
119117

120-
4. Update / Apply the ConfigMap (For best results update the `nginx-hosts` values first)
118+
1. Update / Apply the ConfigMap (For best results update the `nginx-hosts` values first)
121119

122-
```kubectl apply -f deployments/deployment/configmap.yaml```
120+
```kubectl apply -f deployments/deployment/configmap.yaml```
123121

124-
5. Apply the Deployment
122+
1. Apply the Deployment
125123

126-
```kubectl apply -f deployments/deployment/deployment.yaml```
124+
```kubectl apply -f deployments/deployment/deployment.yaml```
127125

128-
6. Check the logs
126+
1. Check the logs
129127

130-
```kubectl -n nlk logs -f $(kubectl -n nlk get po -l "app=nlk" --no-headers -o custom-columns=":metadata.name")```
128+
```kubectl -n nlk logs -f $(kubectl -n nlk get po -l "app=nlk" --no-headers -o custom-columns=":metadata.name")```
131129

132130
At this point NLK should be up and running. Now would be a great time to go over to the [Installation Reference](docs/README.md)
133131
and follow the instructions to deploy a demo application.
@@ -164,11 +162,10 @@ diverse ideas will be key to NLK becoming a solution that is useful to the commu
164162
when we are able to accept pull requests from the community.
165163

166164
## Authors
165+
167166
- Chris Akker - Solutions Architect - Community and Alliances @ F5, Inc.
168167
- Steve Wagner - Solutions Architect - Community and Alliances @ F5, Inc.
169168

170-
<br/>
171-
172169
## License
173170

174171
[Apache License, Version 2.0](https://github.com/nginxinc/nginx-loadbalancer-kubernetes/blob/main/LICENSE)

docs/README.md

Lines changed: 24 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,78 @@
11
# nginx-loadbalancer-kubernetes
22

3-
<br/>
4-
5-
# Welcome to the Nginx LoadBalancer for Kubernetes Solution!
6-
7-
<br/>
3+
## Welcome to the NGINX LoadBalancer for Kubernetes Solution
84

95
![Nginx K8s LB](media/nlk-logo.png) | ![Nginx K8s LB](media/nginx-2020.png)
106
--- | ---
117

12-
<br/>
13-
14-
This repo contains source code and documents for a new `Kubernetes Controller from Nginx`, that provides TCP and HTTP load balancing external to a Kubernetes Cluster running On Premises.
15-
16-
<br/>
17-
18-
>>**This is a replacement for a Cloud Providers `Service Type Loadbalancer`, that is not available for On Premises Kubernetes Clusters.**
8+
This repo contains source code and documents for a `Kubernetes Controller from NGINX`, that provides TCP and HTTP load balancing external to a Kubernetes cluster running on premises.
199

20-
<br/>
21-
<br/>
10+
>>**This is a replacement for a cloud provider's `Service Type Loadbalancer`, that is not available for on premises Kubernetes clusters.**
2211
12+
## Overview
2313

24-
# Overview
25-
26-
- `NLK - NGINX Loadbalancer for Kubernetes` is a new K8s Controller from Nginx, that monitors specified K8s Services, and then sends API calls to an external Nginx Plus server to manage Nginx Upstream servers dynamically.
27-
- This will `synchronize` the K8s Service Endpoint list, with the Nginx LB Server's upstream list.
28-
- The primary use case and Solution provided is for tracking the K8s` NodePort` IP:Port definitions for the Nginx Ingress Controller's `nginx-ingress Service`.
29-
- NLK is a native Kubernetes Controller, running, configured and managed with standard K8s commands.
30-
- NLK paired with the Nginx Plus Server located external to the K8s cluster, this new controller LB function will provide a `TCP Load Balancer Service` for On Premises K8s clusters, which do not have access to a Cloud providers "Service Type LoadBalancer".
31-
- NLK paired with the Nginx Plus Server located external to the Cluster, using Nginx's advanced HTTP features, provide an `HTTP Load Balancer Service` for Enterprise traffic management solutions, such as:
32-
- MultiCluster Active/Active Load Balancing
33-
- Horizontal Cluster Scaling
34-
- HTTP Split Clients - for A/B, Blue/Green, and Canary test and production traffic steering. Allows Cluster operations/maintainence like upgrades, patching, expansion and troubleshooting with no downtime or reloads
35-
- Advanced TLS Processing - MutualTLS, OCSP, FIPS, dynamic cert loading
36-
- Advanced Security features - Oauth, JWT, App Protect WAF Firewall, Rate and Bandwidth limits
37-
- Nginx Java Script (NJS) for custom solutions
38-
- Nginx Zone Sync of KeyVal data
39-
40-
<br/>
14+
- `NLK - NGINX Loadbalancer for Kubernetes` is a Kubernetes controller from NGINX that monitors specified Kubernetes services, and then sends API calls to an external NGINX Plus server to manage NGINX Upstream servers dynamically.
15+
- This will `synchronize` the Kubernetes service's endpoints with the NGINX server's upstream list.
16+
- One use case is to track the`NodePort` IP:Port definitions for the NGINX Ingress Controller's `nginx-ingress Service`.
17+
- NLK is a native Kubernetes controller, running, configured and managed with standard Kubernetes commands.
18+
- When NLK is paired with the NGINX Plus Server located external to the Kubernetes cluster, this controller will provide a `TCP Load Balancer Service` for on premises Kubernetes clusters, which do not have access to a cloud provider's "Service Type LoadBalancer".
19+
- NLK paired with the NGINX Plus Server located external to the Cluster, using NGINX's advanced HTTP features, provides an `HTTP Load Balancer Service` for enterprise traffic management solutions, such as:
20+
- MultiCluster Active/Active Load Balancing
21+
- Horizontal Cluster Scaling
22+
- HTTP Split Clients - for A/B, Blue/Green, and Canary test and production traffic steering. Allows Cluster operations/maintainence like upgrades, patching, expansion and troubleshooting with no downtime or reloads
23+
- Advanced TLS Processing - MutualTLS, OCSP, FIPS, dynamic cert loading
24+
- Advanced Security features - Oauth, JWT, App Protect WAF Firewall, Rate and Bandwidth limits
25+
- NGINX Java Script (NJS) for custom solutions
26+
- NGINX Zone Sync of KeyVal data
4127

4228
## NLK Controller Software Design Overview - How it works
4329

4430
[NLK Controller DESIGN and Architecture](DESIGN.md)
4531

46-
<br/>
47-
4832
## Reference Diagram for NLK TCP Load Balancer Service
4933

50-
<br/>
51-
5234
![NLK Stream Diagram](media/nlk-blog-diagram-v1.png)
5335

54-
<br/>
55-
5636
## Sample Screenshots of Solution at Runtime
5737

58-
<br/>
59-
6038
![NGINX LB ConfigMap](media/nlk-configmap.png)
61-
### ConfigMap with 2 Nginx LB Servers defined for HA
6239

63-
<br/>
40+
### ConfigMap with 2 NGINX LB Servers defined for HA
6441

6542
![NGINX LB Create Nodeport](media/nlk-stream-create-nodeport.png)
66-
### Nginx LB Server Dashboard, NodePort, and NLK Controller Logging
6743

68-
### Legend:
44+
### NGINX LB Server Dashboard, NodePort, and NLK Controller Logging
45+
46+
### Legend
47+
6948
- Red - kubectl nodeport commands
7049
- Blue - nodeport and upstreams for http traffic
7150
- Indigo - nodeport and upstreams for https traffic
7251
- Green - NLK log for api calls to LB Server #1
73-
- Orange - Nginx LB Server upstream dashboard details
52+
- Orange - NGINX LB Server upstream dashboard details
7453
- Kubernetes Worker Nodes are 10.1.1.8 and 10.1.1.10
7554

76-
<br/>
77-
7855
The `Installation Guide` for TCP Loadbalancer Solution is located in the tcp folder:
7956

8057
[TCP Installation Guide](tcp/tcp-installation-guide.md)
8158

82-
<br/>
83-
8459
The `Installation Guide` for HTTP Loadbalancer Solution is located in the http folder:
8560

8661
[HTTP Installation Guide](http/http-installation-guide.md)
8762

88-
<br/>
89-
9063
## Requirements
9164

9265
Please see the /docs folder and Installation Guides for detailed documentation.
9366

94-
<br/>
95-
9667
## Development
9768

9869
Read the [`CONTRIBUTING.md`](https://github.com/nginxinc/nginx-loadbalancer-kubernetes/blob/main/CONTRIBUTING.md) file.
9970

100-
<br/>
101-
10271
## Authors
72+
10373
- Chris Akker - Solutions Architect - Community and Alliances @ F5, Inc.
10474
- Steve Wagner - Solutions Architect - Community and Alliances @ F5, Inc.
10575

106-
<br/>
107-
10876
## License
10977

11078
[Apache License, Version 2.0](https://github.com/nginxinc/nginx-loadbalancer-kubernetes/blob/main/LICENSE)

0 commit comments

Comments
 (0)