Skip to content

Commit

Permalink
doc/diagram updates
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisakker committed Mar 1, 2023
1 parent a2e9e7a commit 5b8fe36
Show file tree
Hide file tree
Showing 15 changed files with 429 additions and 310 deletions.
28 changes: 17 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,39 @@
[![Go Report Card](https://goreportcard.com/badge/nginxinc/nginx-k8s-edge-controller)](https://goreportcard.com/report/nginxinc/nginx-k8s-edge-controller)

# nginx-k8s-edge-controller

## Welcome to the Nginx Kubernetes Load Balancer project !

<br/>

This repo contains source code and documents for a new Kubernetes Controller, that provides TCP load balancing external to a k8s cluster. It is a replacement for a Cloud Providers "Service Type Loadbalancer", that is missing from On Premises Kubernetes Clusters.
This repo contains source code and documents for a new Kubernetes Controller, that provides TCP load balancing external to a Kubernetes Cluster running On Premises.

<br/>

>>**This is a replacement for a Cloud Providers "Service Type Loadbalancer", that is missing from On Premises Kubernetes Clusters.**
<br/>

## Overview

- Create a new K8s Controller, that will monitor specified k8s Service Endpoints, and then send API calls to an external NginxPlus server to manage Nginx Upstream server blocks.
- This is will synchronize the K8s Service Endpoint list, with the Nginx LB server's Upstream block server list.
- Create a new K8s Controller, that will monitor specified k8s Services, and then send API calls to an external Nginx Plus server to manage Nginx Upstream servers automatically.
- This is will `synchronize` the K8s Service Endpoint list, with the Nginx LB server's Upstream server list.
- The primary use case is for tracking the NodePort IP:Port definitions for the Nginx Ingress Controller's `nginx-ingress Service`.
- With the NginxPlus Server located external to the K8s cluster, this new controller LB function would provide an alternative TCP "Load Balancer Service" for On Premises k8s clusters, which do not have access to a Cloud providers "Service Type LoadBalancer".
- Make the solution a native Kubernetes Component, configured and managed with standard K8s tools.
- With the Nginx Plus Server located external to the K8s cluster, this new controller LB function would provide an alternative TCP "Load Balancer Service" for On Premises K8s clusters, which do not have access to a Cloud providers "Service Type LoadBalancer".
- Make the solution a native Kubernetes Component, running, configured and managed with standard K8s commands.

<br/>

## Reference Diagram

<br/>

![NGINX LB Server](docs/media/nginxlb-nklv1.png)
![NGINX LB Server](docs/media/nginxlb-nklv2.png)

<br/>

## Sample Screenshots of Runtime

<br/>

### Configuration with 2 Nginx LB Servers defined (HA):

![NGINX LB ConfigMap](docs/media/nkl-pod-configmap.png)
Expand All @@ -46,23 +50,25 @@ Legend:
- Indigo - nodeport and upstreams for https traffic
- Green - logs for api calls to LB Server #1
- Orange - Nginx LB Server upstream dashboard details
- Kubernetes nodes are 10.1.1.8 and 10.1.1.10
- Kubernetes Worker Nodes are 10.1.1.8 and 10.1.1.10

<br/>

## Requirements

Please see the /docs folder for detailed documentation.

<br/>

## Installation

Please see the /docs folder for detailed documentation.
Please see the /docs folder for Installation Guide.

<br/>

## Development

No contributions are being accepted at this time.
Contributions are being accepted at this time.
Read the [`CONTRIBUTING.md`](https://github.com/nginxinc/nginx-k8s-edge-controller/blob/main/CONTRIBUTING.md) file.

<br/>
Expand Down
231 changes: 0 additions & 231 deletions docs/Installation.md

This file was deleted.

Loading

0 comments on commit 5b8fe36

Please sign in to comment.