Developing applications for Kubernetes using Docker for Mac
$echo `whoami`



Cloud Software Engineer at Cloudreach
Does anyone use Docker?

Does anyone use Kubernetes?

Does Docker do Kubernetes?

YES. THEY. DO.


What does that even mean?
-
Use Kubernetes instead of Docker Swarm
-
Allow a 1 node local cluster
-
Add additional docker commands that play nice with Kubernetes

Great, how do we start?
You already have it, if you have Docker installed
What Docker for Mac doesn't include...
-
Default Ingress Controller
-
Kubernetes Dashboard
-
Heapster
-
Storage Class

Don't worry, because you can add it to your cluster

But this will mess up my workflow

Why should I switch my workflow

-
Speed
-
Modularity
-
Isolation

Unless....

Why not Minikube?
- Single-node Kubernetes cluster inside a VM on your computer
- Allows you to use kubectl to access cluster for development purposes
- Test strategies on your computer instead of in the cloud
- Uses VirtualBox or xhyve driver
- Not bound to localhost
- You have to use minikube IPs
BUT
- docker stack deploy -c <docker-compose file> <name>
So how do I start
- kubectl create -f <kubernetes.yaml file>
- helm install <name of chart>
This is what I did before we start this demo….
- I installed the Kubernetes dashboard
- I installed the Nginx ingress controller
- Created a helm chart with values
- Downloaded images that I need ahead of time
https://github.com/troy0820/revconf
- Using local docker images to use in your cluster
- Deploying those local images to your cluster
- Use docker stack deploy command
- Using helm to manage our deployments
Demo Time
Revconf 2018
By Troy M. Connor
Revconf 2018
- 1,097