Skip to content

Latest commit

 

History

History
64 lines (41 loc) · 1.92 KB

README.md

File metadata and controls

64 lines (41 loc) · 1.92 KB

Nanokube

Nanokube is Nanotube on Kubernetes.

Nanotube can be run on kubernetes as a daemonset; each of the pods of nanokube daemonset accept and receive the traffic from the pods residing on the same node. In order for nanokube to be able to open local ports inside other pods, the nanokube pods should be privileged. See nanokube-daemonset manifest for details.

Setup a test k8s cluster using kind

In order to test how nanokube works, you can run a local kubernetes cluster using kind.

An ansible playbook is prepared to deploy a kubernetes cluster running nanokube instances locally and some test senders which generate load on them.

Run a local nanokube enabled k8s cluster

  1. Install kind.
  2. Install kubernetes python library:
pip install kubernetes
  1. Install ansible collections for kubernetes:
ansible-galaxy collection install kubernetes.core
ansible-galaxy collection install community.kubernetes
ansible-galaxy collection install cloud.common
  1. Run the ansible playbook:
ansible-playbook launch.yml

Enable nanokube monitoring on kind

Note: This section is optional. The cluster will be up and running after last step. Proceed if you need the monitoring in place.

  1. Add prometheus-operator to the cluster:
kubectl create -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/release-0.60/bundle.yaml
  1. Add nanokube monitoring manifests:
kubectl create -f monitoring/
  1. In order to open the web UI of prometheus you can use port-forward:
kubectl -n default port-forward prometheus-nk-prometheus-0 9090:9090

Cleanup the cluster

For cleaning up the cluster, you can easily use delete-cluster playbook:

ansible-playbook delete-cluster.yml