Hands-Free Agent Deployments using Kubernetes
Air-Date January 17, 2019
Run time: 60 minutes
In this technical deep-dive session, @Sasha.Jeltuhin and @Mark.Prichard demonstrate how to deploy agents hands-free in OpenShift and other Kubernetes environments.
You’ll walk away with:
-An overview of the Kubernetes operator framework
-A guided tour through an automated agent instrumentation using the Kubernetes operator framework
-Best practices and insightful advice based on AppDynamics customers’ experience
Also, tune in to hear more about our new cluster monitoring capabilities based on this technology.
Resources - coming soon
There will be a GitHub repo available in the next few weeks, please be sure to check back.
Is the Cluster Agent available to download?
What does "Hands-Free Agent Deployments using Kubernetes" refer to?
If we are using the Cluster Agent, do we still need the Kubernetes extension?
Does the Cluster Agent replace the Machine and Java Agent?
Can we run the agent inside a namespace?
Can we monitor some namespaces but not others?
If there are multiple AppDynamics instances, does AppDynamices handle which AppDynamices instance th...
Is AppDynamics looking at deploying the Java Agent as Sidecar instead of copying agent jars within a...
Is AppDynamics going add supoort for custom metrics for Horizontal Pod Autoscaler like Prometheus do...
With the Cluster Agent, will inactive containers show up under tiers?
Are you looking at Linux processes to determine how to dynamically inject the agent and will this wo...
Can one cluster report to multiple AppDynamics Controllers?
Is there a beta program?
Do you have any final thoughts?
Q: Is the Cluster Agent available to download?
A: We'll be making it available in a few weeks via our Official GitHub site with full instructions and source code. One of the reasons for this is that it's extensible and there are likely additional features and tweaks that people want to make.
Q: When referring to "Hands-Free Agent Deployments using Kubernetes", is this referring to the hands-free installation of the Machine and App Agent on Linux machines using the Kubernetes framework or just on Kubernetes machines and deployed applications?
A: It’s on Linux machines. When we roll out dynamic instrumentation for .NET workloads, it will still only be on Linux for now. This particular session was about App Agents but we can also deploy Machine Agents through the Cluster Agent. However, there is no dynamic instrumentation of the Machine Agent because it is our image.
Q: If we are using the Cluster Agent, do we still need the Kubernetes extension?
A: No - If you switch to the cluster agent, you do not need the extension.
Q: Does the Cluster Agent replace the Machine and Java agent?
A: Yes, the agent will supercede the MA extension.
Q: Can we run the agent inside a namespace?
A: The agent always runs in a single namespace, but it can be configured to monitor the entire cluster or 1-n namespaces.
Q: Can we monitor some namespaces but not others?
A: Yes, the agent can monitor all or selected namespaces.
Q: If there are multiple AppDynamics instances, does AppDynamices handle which AppDynamices instance the application data will be sent to?
A: Assuming you are referring to a Controller, right now, an instance of the Cluster Agent is tied to a Controller but this is where the operator comes in. If you send a custom resource spec to the operator with another Controller, it will create a new instance of the Cluster Agent that will talk to the other Controller. That's one of the things that the operator makes transparent.
Q: Is AppDynamics looking at deploying the Java Agent as Sidecar instead of copying agent jars within a pod?
A: No, we're not looking into Sidecar because our agents are instrumented in the actual JVM of the application. That being said, there are customers who use Init containers as a way of staging agents appropriately so they can be pulled into containers dynamically. We've talked about that approach in other webinars.
Q: Is AppDynamics going add supoort for custom metrics for Horizontal Pod Autoscaler like Prometheus does today?
A: We are planning to do some ingestion of Prometheus metrics, but Horizontal Pod Autoscaler is something that would be part of the scope of the Cluster Agent. It's on the list of specialized workers that track metrics. We do have plans and we’ll talk more about that shortly.
Q: With the Cluster Agent, will inactive containers show up under tiers?
A: The current implementation of the Cluster Agent does not affect the presentation of tiers on flowmaps, etc. The metrics are collected for active containers and it is possible to go back in time to see non-running containers. In the next iteration of the agent, when it is integrated into the product, the UI will show only active nodes for the selected timeframe.
Q: Are you looking at Linux processes to determine how to dynamically inject the agent and will this work for the Java Agent?
A: Yes. This instance of the Cluster Agent is configured to look for Linux Java processes, find the ID, and attach. This session is about Java but we’re looking at a similar approach for .NET and Node.js
Q: Can one cluster report to multiple AppDynamics Controllers?
A: Currently, one cluster reports to one Controller.
Q: Is there a beta program?
A: Yes. Reach out to let us know if you’re interested.
Q: Do you have any final thoughts or takeaways?
A: We want to develop this together WITH you so we can open up opportunities for how people instrument and monitor applications.