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

Commit 40e9b47

Browse files
committed
change NKL to NLK
1 parent 6847c25 commit 40e9b47

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+230
-230
lines changed

DESIGN.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ Lastly, the Synchronizer calls the [NGINX+ Configuration API](https://docs.nginx
1313
stateDiagram-v2
1414
Controller --> Watcher
1515
Controller --> Settings
16-
Watcher --> Handler : "nkl-handler queue"
16+
Watcher --> Handler : "nlk-handler queue"
1717
Handler --> Translator
1818
Translator --> Handler
19-
Handler --> Synchronizer : "nkl-synchronizer queue"
19+
Handler --> Synchronizer : "nlk-synchronizer queue"
2020
Synchronizer --> BorderClient : "HttpBorderClient | TcpBorderClient"
2121
BorderClient --> NGINXPlusLB1
2222
BorderClient --> NGINXPlusLB2
@@ -26,33 +26,33 @@ stateDiagram-v2
2626

2727
### Settings
2828

29-
The Settings module is responsible for loading the configuration settings from the "nkl-config" ConfigMap resource in the "nkl" namespace.
30-
The Settings are loaded when the controller starts and are reloaded when the "nkl-config" ConfigMap resource is updated.
29+
The Settings module is responsible for loading the configuration settings from the "nlk-config" ConfigMap resource in the "nlk" namespace.
30+
The Settings are loaded when the controller starts and are reloaded when the "nlk-config" ConfigMap resource is updated.
3131

3232
### Watcher
3333

3434
The Watcher is responsible for monitoring changes to Service resources in the "nginx-ingress" namespace.
35-
It registers methods that handle each event type. Events are handled by creating a `core.Event` instance and adding it to the "nkl-handler" queue.
35+
It registers methods that handle each event type. Events are handled by creating a `core.Event` instance and adding it to the "nlk-handler" queue.
3636
When adding the event to the queue, the Watcher also retrieves the list of Node IPs and adds the list to the event.
3737
The master node ip is excluded from the list. (NOTE: This should be configurable.)
3838

3939
### Handler
4040

41-
The Handler is responsible for taking the `core.Event` instances from the "nkl-handler" queue and calling the Translator to convert the event into a `core.ServerUpdateEvent` instance,
42-
adding each `core.ServerUpdateEvent` to the "nkl-synchronizer" queue.
41+
The Handler is responsible for taking the `core.Event` instances from the "nlk-handler" queue and calling the Translator to convert the event into a `core.ServerUpdateEvent` instance,
42+
adding each `core.ServerUpdateEvent` to the "nlk-synchronizer" queue.
4343

4444
### Translator
4545

4646
The Translator is responsible for converting the `core.Event` event into an `nginxClient.UpstreamServer` event.
47-
This involves filtering out the `core.Event` instances that are not of interest to the controller by accepting only Port names starting with the NklPrefix value (currently _nkl-_).
47+
This involves filtering out the `core.Event` instances that are not of interest to the controller by accepting only Port names starting with the NklPrefix value (currently _nlk-_).
4848
The event is then fanned-out based on the defined Ports, one event per defined Port. Each port is then augmented with the Ingress name (the name configured in the Port definition with the NklPrefix value removed),
4949
and the list of the Node's IP addresses.
5050

5151
The Translator passes the list of events to the Synchronizer by calling the `AddEvents` method.
5252

5353
**NOTE: It is important that the Port names match the name of the defined NGINX Plus Upstreams.**
5454

55-
In the following example the NGINX Plus Upstreams are named "nkl-nginx-lb-http" and "nkl-nginx-lb-https". These match the name in the NGINX Plus configuration.
55+
In the following example the NGINX Plus Upstreams are named "nlk-nginx-lb-http" and "nlk-nginx-lb-https". These match the name in the NGINX Plus configuration.
5656

5757
```yaml
5858
apiVersion: v1
@@ -66,19 +66,19 @@ spec:
6666
- port: 80
6767
targetPort: 80
6868
protocol: TCP
69-
name: nkl-nginx-lb-http
69+
name: nlk-nginx-lb-http
7070
- port: 443
7171
targetPort: 443
7272
protocol: TCP
73-
name: nkl-nginx-lb-https
73+
name: nlk-nginx-lb-https
7474
selector:
7575
app: nginx-ingress
7676
```
7777
7878
### Synchronizer
7979
8080
The Synchronizer is responsible for fanning-out the given list of `core.ServerUpdateEvent` events, one for each configured NGINX Plus host.
81-
The NGINX Plus hosts are configured using a ConfigMap resource named "nkl-config" in the "nkl" namespace. An example of the ConfigMap is shown below.
81+
The NGINX Plus hosts are configured using a ConfigMap resource named "nlk-config" in the "nlk" namespace. An example of the ConfigMap is shown below.
8282

8383
```yaml
8484
apiVersion: v1
@@ -87,13 +87,13 @@ data:
8787
nginx-hosts:
8888
"http://10.1.1.4:9000/api,http://10.1.1.5:9000/api"
8989
metadata:
90-
name: nkl-config
91-
namespace: nkl
90+
name: nlk-config
91+
namespace: nlk
9292
```
9393

9494
This example includes two NGINX Plus hosts to support High Availability.
9595

96-
Additionally, the Synchronizer is responsible for taking the `core.ServerUpdateEvent` instances from the "nkl-synchronizer" queue and updating the target NGINX Plus host.
96+
Additionally, the Synchronizer is responsible for taking the `core.ServerUpdateEvent` instances from the "nlk-synchronizer" queue and updating the target NGINX Plus host.
9797
The Synchronizer uses the [NGINX Plus Go client](https://github.com/nginxinc/nginx-plus-go-client) to communicate with each NGINX Plus host.
9898

9999

@@ -106,7 +106,7 @@ having defaults set to a base of 2 seconds, and a maximum of 60 seconds.
106106
### Jitter
107107

108108
The Synchronizer uses a jitter mechanism to avoid thrashing the NGINX Plus hosts. Each `core.ServerUpdateEvent` instance
109-
is added to the "nkl-synchronizer" queue with a random jitter value between 250 and 750 milliseconds.
109+
is added to the "nlk-synchronizer" queue with a random jitter value between 250 and 750 milliseconds.
110110

111111
## Authors
112112
- Steve Wagner - Solutions Architect - Community and Alliances @ F5, Inc.

README.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
<br/>
44

5-
# Welcome to the Nginx Kubernetes Load Balancer Solution!
5+
# Welcome to the NGINX Loadbalancer for Kubernetes Solution!
66

77
<br/>
88

9-
![Nginx K8s LB](docs/media/nkl-logo.png) | ![Nginx K8s LB](docs/media/nginx-2020.png)
9+
![Nginx K8s LB](docs/media/nlk-logo.png) | ![Nginx K8s LB](docs/media/nginx-2020.png)
1010
--- | ---
1111

1212
<br/>
@@ -23,12 +23,12 @@ This repo contains source code and documents for a new `Kubernetes Controller fr
2323

2424
# Overview
2525

26-
- `NKL - Nginx Kubernetes Loadbalancer` 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.
26+
- `NLK - Nginx Kubernetes Loadbalancer` 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.
2727
- This will `synchronize` the K8s Service Endpoint list, with the Nginx LB Server's upstream list.
2828
- 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-
- NKL is a native Kubernetes Controller, running, configured and managed with standard K8s commands.
30-
- NKL 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-
- NKL 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:
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:
3232
- MultiCluster Active/Active Load Balancing
3333
- Horizontal Cluster Scaling
3434
- 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
@@ -39,37 +39,37 @@ This repo contains source code and documents for a new `Kubernetes Controller fr
3939

4040
<br/>
4141

42-
## NKL Controller Software Design Overview - How it works
42+
## NLK Controller Software Design Overview - How it works
4343

44-
[NKL Controller DESIGN and Architecture](DESIGN.md)
44+
[NLK Controller DESIGN and Architecture](DESIGN.md)
4545

4646
<br/>
4747

48-
## Reference Diagram for NKL TCP Load Balancer Service
48+
## Reference Diagram for NLK TCP Load Balancer Service
4949

5050
<br/>
5151

52-
![NKL Stream Diagram](docs/media/nkl-stream-diagram.png)
52+
![NLK Stream Diagram](docs/media/nlk-stream-diagram.png)
5353

5454
<br/>
5555

5656
## Sample Screenshots of Solution at Runtime
5757

5858
<br/>
5959

60-
![NGINX LB ConfigMap](docs/media/nkl-configmap.png)
60+
![NGINX LB ConfigMap](docs/media/nlk-configmap.png)
6161
### ConfigMap with 2 Nginx LB Servers defined for HA
6262

6363
<br/>
6464

65-
![NGINX LB Create Nodeport](docs/media/nkl-stream-create-nodeport.png)
66-
### Nginx LB Server Dashboard, NodePort, and NKL Controller Logging
65+
![NGINX LB Create Nodeport](docs/media/nlk-stream-create-nodeport.png)
66+
### Nginx LB Server Dashboard, NodePort, and NLK Controller Logging
6767

6868
### Legend:
6969
- Red - kubectl nodeport commands
7070
- Blue - nodeport and upstreams for http traffic
7171
- Indigo - nodeport and upstreams for https traffic
72-
- Green - NKL log for api calls to LB Server #1
72+
- Green - NLK log for api calls to LB Server #1
7373
- Orange - Nginx LB Server upstream dashboard details
7474
- Kubernetes Worker Nodes are 10.1.1.8 and 10.1.1.10
7575

deployments/deployment/nkl-configmap.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ data:
44
nginx-hosts:
55
"http://10.1.1.4:9000/api,http://10.1.1.5:9000/api"
66
metadata:
7-
name: nkl-config
8-
namespace: nkl
7+
name: nlk-config
8+
namespace: nlk

deployments/deployment/nkl-deployment.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
apiVersion: apps/v1
22
kind: Deployment
33
metadata:
4-
name: nkl-deployment
5-
namespace: nkl
4+
name: nlk-deployment
5+
namespace: nlk
66
labels:
7-
app: nkl
7+
app: nlk
88
spec:
99
replicas: 1
1010
selector:
1111
matchLabels:
12-
app: nkl
12+
app: nlk
1313
template:
1414
metadata:
1515
labels:
16-
app: nkl
16+
app: nlk
1717
spec:
1818
containers:
1919
- name: nginx-k8s-loadbalancer
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: v1
22
kind: Namespace
33
metadata:
4-
name: nkl
4+
name: nlk
55
labels:
6-
name: nkl
6+
name: nlk

deployments/rbac/ClusterRole.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: rbac.authorization.k8s.io/v1
22
kind: ClusterRole
33
metadata:
44
name: ingress-resource-get-watch-list
5-
namespace: nkl
5+
namespace: nlk
66
rules:
77
- apiGroups:
88
- ""

deployments/rbac/ClusterRoleBinding.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ apiVersion: rbac.authorization.k8s.io/v1
22
kind: ClusterRoleBinding
33
metadata:
44
name: "nginx-k8s-loadbalancer:ingress-resource-get-watch-list"
5-
namespace: nkl
5+
namespace: nlk
66
subjects:
77
- kind: ServiceAccount
88
name: nginx-k8s-loadbalancer
9-
namespace: nkl
9+
namespace: nlk
1010
roleRef:
1111
kind: ClusterRole
1212
name: ingress-resource-get-watch-list

deployments/rbac/Secret.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v1
22
kind: Secret
33
metadata:
44
name: nginx-k8s-loadbalancer-secret
5-
namespace: nkl
5+
namespace: nlk
66
annotations:
77
kubernetes.io/service-account.name: nginx-k8s-loadbalancer
88
type: kubernetes.io/service-account-token

deployments/rbac/ServiceAccount.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ apiVersion: v1
22
kind: ServiceAccount
33
metadata:
44
name: nginx-k8s-loadbalancer
5-
namespace: nkl
5+
namespace: nlk

docs/cafe-demo/cafe-virtualserver.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#Example virtual server with routes for Cafe Demo
2-
#For NKL Solution, redirects required for LB Server health checks
2+
#For NLK Solution, redirects required for LB Server health checks
33
#Chris Akker, Apr 2023
44
#
55
apiVersion: k8s.nginx.org/v1

0 commit comments

Comments
 (0)