examples/kubernetes
2025-04-01 04:14:10 +03:00
..
create_vms.sh improved kubernetes example 2025-04-01 04:14:10 +03:00
deploy.sh added kubernetes example 2025-03-12 20:15:05 +02:00
k8s_nginx.yml improved kubernetes example 2025-04-01 04:14:10 +03:00
nginx_service.sh improved kubernetes example 2025-04-01 04:14:10 +03:00
README.md improved kubernetes example 2025-04-01 04:14:10 +03:00

WireGuard cluster example

This example will create 5 kubernetes nodes using k3s: a master and 4 workers. All VMs have public IPs, which can be used to publish ports.

To create the VMs, run:

./create_vms.sh

And to deploy Kubernetes:

./deploy.sh

After this, you can deploy an nginx service to all nodes:

./nginx_service.sh

Succesful output

Assuming everything went fine, at the end you should see something like this:

daemonset.apps/nginx-daemonset unchanged
service/nginx-service unchanged

NGINX DEPLOYED! PLEASE FIND DETAILS OF PODS AND SERVICES BELOW:

NAME                        READY   STATUS    RESTARTS   AGE   IP          NODE         NOMINATED NODE   READINESS GATES
pod/nginx-daemonset-dr84t   1/1     Running   0          3s    10.42.1.4   k3s-node-4   <none>           <none>
pod/nginx-daemonset-lj4tp   1/1     Running   0          3s    10.42.3.5   k3s-node-2   <none>           <none>
pod/nginx-daemonset-r4q5n   1/1     Running   0          3s    10.42.4.4   k3s-node-1   <none>           <none>
pod/nginx-daemonset-t56dd   1/1     Running   0          3s    10.42.0.9   k3s-master   <none>           <none>
pod/nginx-daemonset-z5tmn   0/1     Pending   0          3s    <none>      k3s-node-3   <none>           <none>

NAME                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE   SELECTOR
service/kubernetes      ClusterIP   10.43.0.1       <none>        443/TCP        2m    <none>
service/nginx-service   NodePort    10.43.108.125   <none>        80:30080/TCP   3s    app=nginx

TO CHECK IF NGINX IS WORKING, USE THE FOLLOWING COMMANDS:
   curl http://149.36.48.101:30080
   curl http://149.36.48.104:30080
   curl http://149.36.48.105:30080
   curl http://149.36.48.102:30080
   curl http://149.36.48.103:30080

Tutorial

A more elaborate tutorial can be found in the docs.