SlideShare a Scribd company logo
MAKE

MONEY

MATTER.
Kubernetes Operations
By Kasper Nissen (@phennex), DevOps Engineer @thelunarway
MAKE

MONEY

MATTER.
Kubernetes Operations
By Kasper Nissen (@phennex), DevOps Engineer @thelunarway
Vision
We're living in the era of mobile/digital only – we believe
banking and commerce should to.
Therefore, our vision is to rethink the interaction with money
and defining a complete new category - by introducing a new
money app.
It’s the complex coordination between banking services and
commerce use:
– How I save money.
– How I get money.
– How I spend money.
Product “
We own
the data.
Kasper Nissen
DevOps & Infrastructure Engineer @thelunarway
Experience
DevOps & Infrastructure Engineer @ LEGO (CITMABIS) (oursourced by
IT Minds) for 5 months
Senior/Software Engineer @ IT Minds (~4 years part time)
Master thesis: KubeCloud - A Small-Scale Tangible Cloud Computing
Environment.

Interview with Software Engineering Daily: bit.ly/2paZ5lg
Blogging about Cloud Native Tech @ www.kubecloud.io
M. Eng. Computer Technology from Aarhus University - Department of
Engineering.
B. Eng. Information and Communication Technology from Aarhus
University - School of Engineering
WHAT IS
KUBERNETES?
Written by: Matt Butcher Illustrated by: Bailey Beougher
Kubernetes Kops - Automation Night
Kubernetes Kops - Automation Night
Kubernetes Kops - Automation Night
Kubernetes Kops - Automation Night
Kubernetes Kops - Automation Night
Kubernetes Kops - Automation Night
Kubernetes Kops - Automation Night
Kubernetes Kops - Automation Night
Kubernetes Kops - Automation Night
WHAT DOES IT DO?
Node Node Node Node Node
Node Node Node Node Node
big dataapp Bapp A database
datacenter
Cluster Manager
WHY ARE WE USING IT AT LUNAR WAY?
Freedom
Squads can deploy and more or less implement
how they see fit
Autonomous services
Squads can work independent of other squads
Continuous Delivery
Kubernetes allows us to deploy multiple times
a day. It’s easy to rollback in case something
went wrong
Flexibility
We run many different type of workloads in the
cluster. Gives us mobility to become cloud
agnostic
Scalable infrastructure
Scaling the infrastructure is easy, both on
node and container level
High availability
Kubernetes takes care of container
failures, AWS Auto Scaling groups takes
care of node failures
Easy maintenance
We are using Kubernetes Operations to
help us spin up our clusters, and maintain
them.
👍🎉
THAT’S GREAT,

BUT HOW DO I GET
STARTED? 🤓
KUBERNETES
OPERATIONS
AKA.
KOPS
WHAT IS THAT? 😱
THINK OF IT AS
KUBECTL FOR
CLUSTERS 👏
kubectl get pods
NAME READY STATUS RESTARTS AGE
dns-controller 1/1 Running 0 13d
etcd-server-events-ip 1/1 Running 0 13d
etcd-server-ip 1/1 Running 0 13d
kube-apiserver-ip 1/1 Running 0 13d
kube-controller-manager 1/1 Running 0 13d
kops get cluster
$ kops get cluster
NAME CLOUD ZONES
private-k8s-cluster aws eu-west-1a,eu-west-1b,eu-west-1c
WHAT CAN I DO
WITH IT?
kops helps you create,
destroy, upgrade and
maintain production-grade,
highly available, Kubernetes
clusters from the command
line
WHERE?
AWS (Officially supported)
GCP (alpha)
VMWARE vSPHERE (alpha)
FEATURES?
•Automates the provisioning of Kubernetes clusters in
(AWS)
•Deploys Highly Available (HA) Kubernetes Masters
•Supports upgrading from kube-up
•Built on a state-sync model for dry-runs and automatic
idempotenc
•Ability to generate configuration files for AWS
CloudFormation and Terraform configuration
•Supports custom Kubernetes add-ons
•Command line autocompletion
•Community supported!
LET’S BUILD SOME
CLUSTERS
PREREQUISUITES.
IAM USER
AmazonEC2FullAccess
AmazonRoute53FullAccess
AmazonS3FullAccess
IAMFullAccess
AmazonVPCFullAccess
ROUTE53 HOSTED ZONE
SETUP
Follow the guide:
https://github.com/kubernetes/kops/blob/
master/docs/aws.md
https://github.com/kaspernissen/kops-demo
Videos: http://bit.ly/2tmWOCF
DEMO 1:
SINGLE MASTER IN PUBLIC
ZONE
3 NODES
s3://phennex-state-store
VPC
api.public-single-master.phennex.com
kubectlkops
autoscaling group autoscaling group
eu-west-1a
public
$ kops create cluster 
--name $KOPS_NAME 
--state $KOPS_STATE_STORE 
--dns-zone $PUBLIC_HOSTED_ZONE_ID 
--node-count 3 
--zones eu-west-1a 
--master-zones eu-west-1a 
--cloud aws 
--node-size t2.medium 
--master-size t2.medium 
--yes
Kubernetes Kops - Automation Night
DEMO 2:
MULTIPLE MASTERS IN
PRIVATE ZONES
3 NODES
s3://phennex-state-store
VPC
api.private-multiple-masters.phennex.com
kubectl
kops
autoscaling group
autoscaling group autoscaling group autoscaling group
bastion.private-multiple-masters.phennex.com
eu-west-1a eu-west-1b eu-west-1c
privatepublic
$ kops create cluster 
--name $KOPS_NAME 
--state $KOPS_STATE_STORE 
--node-count 3 
--dns-zone $PRIVATE_HOSTED_ZONE_ID 
--zones eu-west-1a,eu-west-1b,eu-west-1c 
--master-zones eu-west-1a,eu-west-1b,eu-west-1c 
--cloud aws 
--node-size t2.medium 
--master-size t2.medium 
--bastion 
--topology private 
--networking weave 
--yes
Kubernetes Kops - Automation Night
AWESOME!
THAT WAS EASY… 👍
WHAT IF YOU WANT YOUR
CLUSTER TO RUN IN AN
EXISTING VPC?
http://kubecloud.io/setup-
ha-k8s-kops/
MANY MORE
CONFIGURATION OPTIONS
TO CHOOSE FROM…
--cloud-labels ”Team=Dev”
--image some-image (Ubuntu, CentOS, RHEL7, CoreOS)
--networking calico, flannel
--node-security-groups
--master-security-groups
--admin-access <SOME IP>
--ssh-public-key=/Users/..
--out=. 
--target=terraform
WHAT ABOUT UPGRADING?
$ kops upgrade cluster
YOU CAN ALWAYS EDIT YOUR
CLUSTER CONFIGURATION
$ kops edit cluster
$ kops edit ig --name=<CLUSTER> nodes
ROLLING UPDATES

(default pretty bad!) Use feature flag:


$ export KOPS_FEATURE_FLAGS="+DrainAndValidateRollingUpdate"
$ kops rolling-update cluster
Kubernetes Kops - Automation Night
SCALING THE CLUSTER
$ kops edit ig --name $KOPS_NAME nodes
Kubernetes Kops - Automation Night
EXTRA…

(if we have time)
Kubernetes Kops - Automation Night
CLEAN UP!
Kubernetes Kops - Automation Night
OTHER SOLUTIONS
COREOS TECHTONIC
OPENSHIFT
KISMATIC
KUBERMATIC
Thank you!
Catch me on Twitter @phennex
Or in the Slack Community: Cloud Native DK (https://cloudnative-dk.herokuapp.com/ )

More Related Content

Kubernetes Kops - Automation Night