Dynamic management of kubernetes
-
Upload
martin-podval -
Category
Software
-
view
226 -
download
2
Transcript of Dynamic management of kubernetes
![Page 1: Dynamic management of kubernetes](https://reader031.fdocuments.in/reader031/viewer/2022030305/5875860e1a28ab901c8b4c69/html5/thumbnails/1.jpg)
Dynamic management of Kubernetes
MartinPodval
![Page 2: Dynamic management of kubernetes](https://reader031.fdocuments.in/reader031/viewer/2022030305/5875860e1a28ab901c8b4c69/html5/thumbnails/2.jpg)
Usualy you have some expectation ...
![Page 3: Dynamic management of kubernetes](https://reader031.fdocuments.in/reader031/viewer/2022030305/5875860e1a28ab901c8b4c69/html5/thumbnails/3.jpg)
… which are simply doable
… w/ autoscaling
![Page 4: Dynamic management of kubernetes](https://reader031.fdocuments.in/reader031/viewer/2022030305/5875860e1a28ab901c8b4c69/html5/thumbnails/4.jpg)
Unpredictable, isolated customers?
![Page 5: Dynamic management of kubernetes](https://reader031.fdocuments.in/reader031/viewer/2022030305/5875860e1a28ab901c8b4c69/html5/thumbnails/5.jpg)
Separate them. It’s simple!
![Page 6: Dynamic management of kubernetes](https://reader031.fdocuments.in/reader031/viewer/2022030305/5875860e1a28ab901c8b4c69/html5/thumbnails/6.jpg)
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](https://reader031.fdocuments.in/reader031/viewer/2022030305/5875860e1a28ab901c8b4c69/html5/thumbnails/7.jpg)
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](https://reader031.fdocuments.in/reader031/viewer/2022030305/5875860e1a28ab901c8b4c69/html5/thumbnails/8.jpg)
You can create own k8s management
![Page 9: Dynamic management of kubernetes](https://reader031.fdocuments.in/reader031/viewer/2022030305/5875860e1a28ab901c8b4c69/html5/thumbnails/9.jpg)
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](https://reader031.fdocuments.in/reader031/viewer/2022030305/5875860e1a28ab901c8b4c69/html5/thumbnails/10.jpg)
How in Java? Use Fabric8 K8s client
![Page 11: Dynamic management of kubernetes](https://reader031.fdocuments.in/reader031/viewer/2022030305/5875860e1a28ab901c8b4c69/html5/thumbnails/11.jpg)
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](https://reader031.fdocuments.in/reader031/viewer/2022030305/5875860e1a28ab901c8b4c69/html5/thumbnails/12.jpg)
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](https://reader031.fdocuments.in/reader031/viewer/2022030305/5875860e1a28ab901c8b4c69/html5/thumbnails/13.jpg)
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](https://reader031.fdocuments.in/reader031/viewer/2022030305/5875860e1a28ab901c8b4c69/html5/thumbnails/14.jpg)
Q & A