Please help me to understand exact difference between Classic and Cloud Native approaches for K8S monitoring.
Classic FS - in this only oneagent image gets downloaded.
Cloud Native FS -in this both Oneagent image and code modules images get downloaded, code modules image is maintained by CSI driver.
1. what is the advantage of having extra code modules image in Cloud Native FS ?
2. What is the exact disadvantage in Classic FS that was overcome by cloud Native FS?
Solved! Go to Solution.
Both deployment options have their own advantages and limitations. The Classic full-stack injection is the recommended approach. When it comes to security concerns then, Cloud-native full-stack injection can be the solution.
Note: Classic full-stack injection requires to write access from the OneAgent pod to the Kubernetes node filesystem to detect and inject into newly deployed containers.
Be also aware that in Classic full-stack you cannot not select specific namespaces or exlude specific namespaces to monitor, which you might be interessted to keep the Host Unit consumption low, therefore you may prefer to go with Cloud-native full-stack.
I have few queries With respect to Classic Vs CloudNative approach
1. Does ClassicFullstack ask for application process/pods restart whenever new worker nodes spin up?
2. Whether application process/pods restart is not required in CloudNative FullStack when new worker nodes spin up?
Classic FullStack - my understanding is suppose we have 2 nodes now and we do node rollover then 2 new nodes comes up, on new nodes oneAgent process will start as demon(before application process start) so once application process starts it will do injection and start monitoring it(without restart of appln pods)
please clarify my understanding is correct or not.
I would like to shed some light in this discussion.
The major difference between classic full stack and cloud native full stack is the injection and lifecycle mgmt of code-modules:
* Classic full stack: Code-modules are injected by the OneAgent running on the node (OS agent). Thus, the OS agent needs to be deployed and ready on each node before any code-module get's injected (=you need to restart every pod / process which has been deployed before the OneAgent on the node). This poses a natural race condition and is the major disadvantage of this approach. The lifecycle mgmt of code-modules is handled by the OneAgent.
- Cloud native full stack: The code-module injection is triggered by the Dynatrace webhook that uses an init-container and a CSI volume to mount the code-module binaries. The CSI driver manages the lifecycle of code-modules per node and ensures storage and bandwidth efficiency (code modules are downloaded and stored once per node and not for each pod). As long as the Dynatrace Operator/Webhook/CSI-Driver are installed and ready before any workloads in a k8s cluster, code-modules get injected and there is no need to restart any pods/processes.
Here's a link to the documentation which explains the capabilities and differences.
We are currently working on further removing the last limitations of cloud native full stack (e.g. support for network zones) and plan to make cloud native the new default in one of the upcoming Dynatrace Operator releases.
Hope this helps!