Kubecon 2023 related work
-
Copy your NGINX Plus certificates to
/nginx-plus/etc/ssl/nginx
You should have the filesnginx-repo.key
andnginx-cert.key
there. -
Install kind. asdf is the easiest way to get the exact version this repo is tested with:
- Install asdf
- Install the kind plugin
asdf plugin-add kind https://github.com/reegnz/asdf-kind.git
asdf install
- Now you have kind!
-
To just get things up and running just run
./start.sh
Alternately, you can reference the guides:
commands.md is a command by command setup that basically does what start.sh
does. It also includes some instructions for setting up nginx app protect
DEMO.md is a user-facing explanation of NLK and demonstration flow.
From the Kubernetes docs:
Kubernetes does not directly offer a load balancing component; you must provide one, or you can integrate your Kubernetes cluster with a cloud provider.
Depending on your cloud platform, a LoadBalancer
might create:
- AWS: Elastic Load Balancer
- Google Cloud: Google Cloud Load Balancer
- Azure: Azure Load Balancer
TODO: what value do these provide?
If you're not on a cloud provider and need to provide access to your cluster, what do you do?
NLK provides a controller that is deployed to a kubernetes pod and listens for changes to services in the nginx-ingress
namespace that have names prefixed with nlk-
flowchart LR
title[<u>NLK Relationship with Kubernetes and NGINX Plus</u>]
nlk-->np["NGINX Plus"]
subgraph Kubernetes Cluster
nlk["nginx-loadbalancer-kubernetes"]
end
The potential benefits of this approach are? (TODO: spread of responsibility between the ingress controller and the outside load balancer)
- https://www.baeldung.com/ops/kubernetes-ingress-vs-load-balancer
- https://www.okteto.com/blog/guide-to-the-kubernetes-load-balancer-service/
This setup has three main pieces:
- A Kubernetes cluster
- The NGINX Kubernetes Ingress Controller
- The
nginx-loadbalancer-kubernetes
controller - A sample application
- An instance of NGINX Plus running outside the Kubernetes Cluster
- A Kubernetes cluster -> Kind
- The NGINX Kubernetes Ingress Controller -> installed from manifests
- The
nginx-loadbalancer-kubernetes
controller -> installed from manifests - A sample application -> The NGINX Coffeeinstalled from manifests
- An instance of NGINX Plus running outside the Kubernetes Cluster -> Running in a docker container on the same docker network as the kind cluster