In order to test k8s you can always deploy a single-node setup locally using minikube, however it is a bit limited if you want to test interactions that require your services to be externally accessible from a mobile or web front-end.
While I wrote this post long time ago this is still a need that I come across when doing training or testing small projects.
I have updated my script to work with kubeadm and Ubuntu 16.04+, this should also help you deploying the lastest k8s version. While the old method should still work, this would be simpler.
Also, we took this concept to production in Bitnami. We have created a kubernetes sandbox that comes with all bells and whistles. You can run this in most mayor public cloud providers.
Look forward to your feedback!
For this reason, I created a basic k8s setup for a Core OS single node in Azure using https://coreos.com/kubernetes/docs/latest/getting-started.html . Once I did this, I decided to automate its deployment via script.
It requires a Core OS instance running, then connect to it and:
git clone https://github.com/vtuson/k8single.git k8
./kubeform.sh [myip-address] –> ip associated to eth, you can find it using ifconfig
This will deploy k8 into a single node, it sets up kubectl in the node and deploys skydns add on.
It also includes a busybox node file that can be deployed by:
kubectl create -f files/busybox
This might come useful to debug issues with the set up. To execute commands in busybox run:
kubectl exec busybox — [command]
The script and config files can be access at https://github.com/vtuson/k8single
If you hit any issues while deploying k8s in a single node a few things worth checking are:
sudo systemctl status etcd
sudo systemctl status flanneld
sudo systemctl status docker
Also it is worth checking what docker containers are running and if necessarily check the logs
docker ps -a
docker logs [container-id]