Writing a Kubernetes Operator in Java by Fabian Stäber

preview_player
Показать описание
Kubernetes is much more than a runtime platform for Docker containers. Its API can be extended with application-specific custom resource definitions (CRDs), and you can implement your own controllers adapting your applications dynamically to changes in the cluster. Application-specific custom controllers are called "operators".

Until recently, most operators were written in Go, re-using code from the built-in Kubernetes controllers. With Quarkus and the fabric8 Kubernetes Client we now have a great basis for implementing operators in Java, allowing us to integrate our existing code base with the power of Kubernetes API extensions.

At Instana, we used these new technologies to implement our instana-agent-operator. In this presentation, we will provide an experience report and lessons learned from implementing our own operator in Java.

Dr. Fabian Stäber is Java developer and monitoring enthusiast at Instana. As part of the infrastructure team at Instana, he started the Instana agent operator project by porting previous work from Go to Java, and helped evolving it into a production-ready open source project. Fabian is excited about Java backend development, distributed systems, operations, and monitoring. His academic research was on decentralized, peer-to-peer-based network architectures.
Рекомендации по теме
Комментарии
Автор

Thanks it was helpful. As per k8s doc "Resource versions must be treated as opaque by clients and passed unmodified back to the server. For example, clients must not assume resource versions are numeric, and may only compare two resource version for equality (i.e. must not compare resource versions for greater-than or less-than relationships)."
You suggested that to check map for a newer version but as per k8s document we should not compare. How to handle this scenario ?

ankitjain