Docker

&

Kubernetes
and how to

make it a success

at your company!
Kubernetes

is

Hard
Right choice 

for everyone
There is

the reason
Do not

reinvent the

wheel
x companies

=

x different setups
= lot of money

to consultants
Nobody wants

to work on old

projects
unless..
they are 

paid a lot $$$
let us analyze!
why is it so

nice to start

from scratch?
new 

framework?
you can actually find 

the documentation
it starts quickly
inherit 

knowledge
Why don’t

we start

from scratch?
- you are not allowed

- it is difficult

- other teams

- hardware

- metrics

- maintainability

- scalability

My stories
IT consultants

The bus-factor?
Danish Energy
Provider

Platform?
Ad agency

Resource control?
Job Portal

Maintainability?
Kubernetes

=

commodity
Kubernetes

=

ground layer
Initial problems:

- not allowed

- it is difficult

- another team

- hardware

- metrics

- maintainability

- scaleability
They can be
solved,

once!
framework

also

building blocks
money
saving money

by

raising utilization
ghost
resources?
Kubernetes give
insights &

commitments
Deployment:

10 replicas
You are not
saying:

10 machines
Over-provisioning?!

RAM

CPU

DISK
Kubernetes you
don’t worry

about resources
auto-scaling
how does
autoscaling
nodes work?
current

load
total

capacity<
What else

than saving
money?
Metrics

are hard?
Metrics

=

insights for scaling
ops devops/devs
appdeploy
ops devops/devs
app
deploy
inject
what can they
inject?

- prometheus

- grafana
service-mesh

- envoy

- istio

- conduit
inject trust?
How does it
work?

RBAC
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: gitkube
subjects:
- kind: ServiceAccount
name: gitkube
namespace: kube-system
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
micro-services
0
20
40
60
80
maintain create
Ingress
Ingress
Easy micro-services
Ingress
complex micro-services
500
200
Better monitoring

Less coordination

Save money
So much free
time now?
Chaos
Engineering?
Getting more
responsibility

with

more tools
Azure Container
Instances

&

AWS FarGate
Virtual Kube-let

=

Per sec billing
Reach a new level

and moved
beyond bare metal
but my boss
wouldn’t 

let me!
Kubernetes is
small - 

start on your own!
You are making less
errors, focusing
more on security

and insights
Connected Cars

on

Kubernetes
Google Load Balancer
nginx-ingress
Cloud SQL
web-deployment
kubernetes service, ingress, replication, pod, secrets
Google Cloud Builder
Kubernetes

New Types
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: remotes.gitkube.sh
spec:
group: gitkube.sh
version: v1alpha1
scope: Namespaced
names:
plural: remotes
singular: remote
kind: Remote
shortNames:
- rem
apiVersion: gitkube.sh/v1alpha1
kind: Remote
metadata:
name: sampleremote
namespace: default
spec:
# Insert ssh-keys for allowing users to git push
authorizedKeys:
- "ssh-rsa your-ssh-public-key"
# Provide registry details: https://github.com/hasura/gitkube/blob/master/docs/registry.md
registry:
url: "docker.io/user"
credentials:
secretRef: regsecret # Name of docker-registry secret
# Define deployment rules
deployments:
- name: www # Name of K8s deployment which is updated on git push
containers:
- name: www # Name of container in the deployment which is built during git push
path: example/www # Docker build context path in the git repo
dockerfile: example/www/Dockerfile # Location of Dockerfile for the source code
Thank you!

kevin.simper@gmail.com

@kevinsimper

Kubernetes at Google Cloud Community Copenhagen