Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Dynamic management of
Kubernetes
MartinPodval
Usualy you have some expectation ...
… which are simply doable
… w/ autoscaling
Unpredictable, isolated customers?
Separate them. It’s simple!
Why?
To simplify complicated things
● Scale different customers in different way
● Divide and do not affect multiple envir...
Kubernetes allows a lot of fun
Kube API is REST
● create your own `pods`, `rc` and `svc`
● deploy them
● manage them
… dur...
You can create own k8s management
Management pod?
● Just another docker container
● With access to KubeAPI
● Java & SpringBoot
● Your `Rc`s and `Svc`s descr...
How in Java? Use Fabric8 K8s client
K8s API and Fabric8 Client
● Described in Swagger
● Documentation, examples
● Full-fledged
● Fluent API
● Builders
● Auto-...
What was tricky?
Port management
● K8s does not allows to change ports
● Static tcp load balancer, nginx
● TCP connection ...
What was tricky? Contd.
● Complicated testing - KubeApi required
● Everything is async - container creation takes minutes
...
Q & A
Upcoming SlideShare
Loading in …5
×

Dynamic management of kubernetes

768 views

Published on

Dynamic management of kubernetes

Published in: Software
  • Be the first to comment

Dynamic management of kubernetes

  1. 1. Dynamic management of Kubernetes MartinPodval
  2. 2. Usualy you have some expectation ...
  3. 3. … which are simply doable … w/ autoscaling
  4. 4. Unpredictable, isolated customers?
  5. 5. Separate them. It’s simple!
  6. 6. 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
  7. 7. Kubernetes allows a lot of fun Kube API is REST ● create your own `pods`, `rc` and `svc` ● deploy them ● manage them … during the runtime!
  8. 8. You can create own k8s management
  9. 9. 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
  10. 10. How in Java? Use Fabric8 K8s client
  11. 11. K8s API and Fabric8 Client ● Described in Swagger ● Documentation, examples ● Full-fledged ● Fluent API ● Builders ● Auto-generated … it just works!
  12. 12. What was tricky? Port management ● K8s does not allows to change ports ● Static tcp load balancer, nginx ● TCP connection failures on KubeProxy
  13. 13. What was tricky? Contd. ● Complicated testing - KubeApi required ● Everything is async - container creation takes minutes ● Watching resource versions ● Orphaned containers
  14. 14. Q & A

×