Once you have a Docker container, it is really simple to deploy containers to Kubernetes.

Generate a Deployment YAML

kubectl provides a fantastic way to help generate deployment yamls.

1
kubectl create deployment <app_name> --image=<some/image> --dry-run=client -o yaml > <deployment_file_name>.yaml

Perform the Deployment

Now that we have a deployment yaml, we can simply run:

1
kubectl apply -f <deployment_file_name>.yaml

What next?

Next you might want to add a Service so that the deployment is available to the world.

Open up the deployment yaml file generated and add the following:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
---
apiVersion: v1
kind: Service
metadata:
  name: lb-service
  labels:
    app: lb-service
spec:
  type: LoadBalancer
  ports:
  - port: 80
     targetPort: 5000
  selector:
    app: <app_name>

Note that the above Service uses a LoadBalancer type, listens for requests on port 80, forwards them onto port 5000 to the app specified in the selector label.

We called this <app_name> above, which you should swap out with whatever appname you chose before. This is specified by the label used in the original yaml.