Dynamic management of kubernetes

14
Dynamic management of Kubernetes MartinPodval

Transcript of Dynamic management of kubernetes

Page 1: Dynamic management of kubernetes

Dynamic management of Kubernetes

MartinPodval

Page 2: Dynamic management of kubernetes

Usualy you have some expectation ...

Page 3: Dynamic management of kubernetes

… which are simply doable

… w/ autoscaling

Page 4: Dynamic management of kubernetes

Unpredictable, isolated customers?

Page 5: Dynamic management of kubernetes

Separate them. It’s simple!

Page 6: Dynamic management of kubernetes

Why?

To simplify complicated things● Scale different customers in different way● Divide and do not affect multiple environments● Different image versions for different customers● Specific customizations for specific customer● Cannary but “full-environment”● Allows to deploy complex changes● Easy management by labels

Page 7: Dynamic management of kubernetes

Kubernetes allows a lot of fun

Kube API is REST● create your own `pods`, `rc` and `svc`● deploy them● manage them

… during the runtime!

Page 8: Dynamic management of kubernetes

You can create own k8s management

Page 9: Dynamic management of kubernetes

Management pod?

● Just another docker container● With access to KubeAPI● Java & SpringBoot● Your `Rc`s and `Svc`s described in the code● REST calls and long-polling watches - by etcd● Auto-scaling by k8s or according to KubeAPI calls

Page 10: Dynamic management of kubernetes

How in Java? Use Fabric8 K8s client

Page 11: Dynamic management of kubernetes

K8s API and Fabric8 Client

● Described in Swagger● Documentation, examples● Full-fledged● Fluent API● Builders● Auto-generated

… it just works!

Page 12: Dynamic management of kubernetes

What was tricky?

Port management● K8s does not allows to change ports● Static tcp load balancer, nginx● TCP connection failures on KubeProxy

Page 13: Dynamic management of kubernetes

What was tricky? Contd.

● Complicated testing - KubeApi required● Everything is async - container creation takes minutes● Watching resource versions● Orphaned containers

Page 14: Dynamic management of kubernetes

Q & A