CA APM Kubernetes Monitoring is an extension that provides full monitoring insights into the containerized applications that you deploy, scale and manage with Kubernetes. Use the extension to monitor the availability and performance of your containerized applications, processes and cloud instances. Manage dependencies between your hosts and applications in Docker and Kubernetes container clusters in real time, and use the collected metrics data to streamline up or down-scaling of your environment.
Docker Remote API v1.23 Docker Server version 1.11.x Kubernetes 1.6.0 + upto 1.16
| Tags | Date | Supported APM Version | Internal Build Number |
|---|---|---|---|
| latest | 15-Jan-2020 | 11.x, DX APM | Release 20.1.0.0_fixes ( 24 ) |
| 20200114 | 15-Jan-2020 | 11.x, DX APM | Release 20.1.0.0_fixes ( 24 ) |
| 2.0.2.5 | 27-Sep-2019 | 11.x, DX APM | Release 11.1.0.3_fixes ( 11 ) |
| 2.0.2 | 18-Feb-2019 | APM SaaS (DxI) , 10.7 SP2 + | Release 10.7.0.45 ( 990045 ) |
| 2.0.1 | 26-Oct-2018 | APM SaaS (DxI) , 10.7 SP2 + | Release 10.6.0.179 ( 990179 ) |
| 2.0 | 03-Oct-2018 | APM SaaS (DxI) , 10.7 SP2 + | Release 10.6.0.173 ( 990173 ) |
| 1.0 | 14-Apr-2018 | 10.7 , SP1 | Release 10.7.0.0_sp (Build 22) |
latest
2.0.2
2.0.1
2.0
1.0
Run the following yml
kubectl create -f caagent-kubernetesmonitor.yml
The following YML file contains a deployment & daemonset and the containers need to run in privileged mode.
Replace the following variables with your setup details
[AGENTMANAGER_URL] : Agent/EM Connection details - similar to what we provide on IntroscopeAgent.profile
[AGENTMANAGER_CREDENTIAL] : Agent Manager Credentials needed to connect any SaaS instance
[KUBERNETES_CONNECTION_URL] : Kubernetes connection details . This can be obtained by running kubectl config view
[APITOKEN] : API Token for the connection URL. You can obtain this through creating a service account with cluster-reader role on the default workspace.
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: caagent
labels:
tier: monitoring
app: caagent
version: v1
spec:
template:
metadata:
labels:
app: caagent
spec:
hostPID: true
hostIPC: true
hostNetwork: true
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
containers:
- resources:
securityContext:
privileged: true
env:
- name: containerflow
value: enabled
- name: agentManager_url_1
value: [AGENTMANAGER_URL]
- name: agentManager_credential
value: [AGENTMANAGER_CREDENTIAL]
- name: type
value: Kubernetes
- name: interval
value: "60"
- name: apmenv_introscope_agent_extensions_bundles_load
value: OpenshiftMonitor, HostMonitor
name: podmonitor
image: caapm/kubernetesmonitor:latest
imagePullPolicy: Always
livenessProbe:
exec:
command:
- /bin/bash
- -c
- "if (( $(expr `date +%s` - `stat -c %Y /tmp/apmia-health/extensions/Docker-health.txt`) > 120 )); then exit 1; fi"
initialDelaySeconds: 120
resources:
limits:
cpu: 500m
memory: 700Mi
requests:
cpu: 200m
memory: 300Mi
volumeMounts:
- name: dockersock
mountPath: /var/run/docker.sock
readOnly: true
- name: proc
mountPath: /host/proc
readOnly: true
volumes:
- name: dockersock
hostPath:
path: /var/run/docker.sock
- name: proc
hostPath:
path: /proc
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: caagent-deployment
labels:
tier: monitoring
app: caagent_v2
version: v1
spec:
# oc adm policy add-scc-to-user privileged -z default
template:
metadata:
labels:
app: caagent_v2
spec:
hostPID: true
hostIPC: true
hostNetwork: true
containers:
- resources:
securityContext:
privileged: true
env:
- name: agentManager_url_1
value: [AGENTMANAGER_URL]
- name: agentManager_credential
value: [AGENTMANAGER_CREDENTIAL]
- name: connectionurl
value: [KUBERNETES_CONNECTION_URL]
- name: apitoken
value: [APITOKEN]
- name: type
value: Kubernetes
- name: HostMonitoring
value: disabled
- name: MIN_HEAP_VAL_IN_MB
value: "400"
- name: MAX_HEAP_VAL_IN_MB
value: "800"
name: kubemetainfo
image: caapm/kubernetesmonitor:latest
resources:
limits:
cpu: 700m
memory: 1000Mi
requests:
cpu: 400m
memory: 500Mi
imagePullPolicy: Always
livenessProbe:
exec:
command:
- /bin/bash
- -c
- "if (( $(expr `date +%s` - `stat -c %Y /tmp/apmia-health/extensions/Kubernetes-health.txt`) > 900 )); then exit 1; fi"
initialDelaySeconds: 120
kubectl create sa caapm
kubectl create clusterrolebinding cluster-read --serviceaccount=default:caapm --clusterrole=cluster-admin
kubectl get secrets|grep caapm-token| cut -f1 -d " "|xargs kubectl describe secret | grep token
kubectl delete -f caagent-kubernetesmonitor.yml
If you want to capture data from ns1 and ns2 only – you need to pass this additional ENV variable during deployment on both DaemonSet and Deployment configuration :
- name: KUBERNETES_NAMESPACE_MONITOR_LIST
value: ns1, ns2
If you are using the image from latest or 20200114 tag onwards , you need to pass this additional ENV variable in both Deployment and DaemonSet Pods in order to establish the connection to 10.7 EM. This is not needed in case you are connecting to SaaS or 11.X EM
- name: apmenv_introscope_agent_connection_compatibility_version
value: "10.7"
Content type
Image
Digest
sha256:7092c9781…
Size
106.8 MB
Last updated
almost 2 years ago
docker pull caapm/kubernetesmonitor:test