Skip to main content

Installation of the master and node agents

The following guides you to the master and node agent installation procedure as follows: This procedure is the same as in Install guide.

Note

EKS Fargate is to be supported later.

Pre-environment checking and setting

Depending on the Kubernetes environment, pre-environment configuration may be required. If this does not apply to the Istio, GKE, and OpenShift environments, skip to Next step.

In the Istio environment, execute the following command to create the ServiceEntry, the resource that communicates with the WhaTap collection server.

SH
kubectl create namespace whatap-monitoring
kubectl label namespace whatap-monitoring istio-injection=enabled
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: whatap-external
spec:
hosts:
- whatap-proxy1
- whatap-proxy2
addresses:
- 13.124.11.223
- 13.209.172.35
ports:
- name: proxy
number: 6600
protocol: tcp
location: MESH_EXTERNAL
EOF

Creating the Kubernetes agent

When installing the WhaTap Kubernetes agent, the guides based on helm charts and yaml files are provided as follows.

Checking the Helm version and WhaTap repository network connection status

  1. Check the helm version by using the following command. It is available in the version 3.x or later.

    helm version
    # version.BuildInfo{Version:"v3.x", GitCommit:"xxx", GitTreeState:"clean", GoVersion:"go1.20.8"}
  2. Check the network connectivity to the WhaTap Helm repository.

    curl https://whatap.github.io/helm/ping 
    # pong

Helm chart-based installation

After adding the WhaTap Helm repository, create a default configuration file appropriate for Container Runtime and then install the agent.

  1. Execute the following command to add the WhaTap Helm repository.

    helm repo add whatap https://whatap.github.io/helm/
    helm repo update
  2. Check the user CONTAINER-RUNTIME by executing the following command:

    kubectl get nodes -o wide

  3. After checking the CONTAINER-RUNTIME, create a default configuration file (values.yaml) required for installation as follows.

    containerRuntime: #CONTAINER-RUNTIME
    whatap:
    license: #WHATAP-LICENESE-KEY
    host: "13.124.11.223/13.209.172.35"
    port: "6600"
  4. Install the agent application as follows.

    • For users who install the agent for the first time, run the following command to install the agent application.

      helm install whatap-kube-agent whatap/kube -f values.yaml
    • In case of existing WhaTap Kubernetes agent users, run the following command to install the agent application.

      kubectl delete ns whatap-monitoring
      kubectl delete clusterrole whatap
      kubectl delete clusterrolebinding whatap
      helm install whatap-kube-agent whatap/kube -f values.yaml
    Note

    If you have installed the WhaTap Kubernetes agent by using the existing yaml file, Clean Install is required. After deleting the existing Kubernetes agent, installation is possible using the helm chart.

Major configuration items for values.yaml

To modify the WhaTap Kubernetes agent settings, modify the default configuration file (values.yaml). The major settings in the values.yaml file are as follows:

KeyTypeDefaultDescription
whatap.licenseString# <license-key>Whatap license key
whatap.hostString# <whatap-server-host>Host address of the Whatap server
whatap.portInt# <whatap-server-port>Whatap port number
containerRuntimeString"docker"Container runtime in use. Select any of "docker", "containerd", and "crio".
daemonSet.nameStringwhatap-node-agentName of DaemonSet
daemonSet.labelStringwhatap-node-agentLabel to assign to DaemonSet
daemonSet.initContainers.nodeDebugger.enabledBooltrueWhether to enable the Whatap node debugger container
daemonSet.containers.nodeHelper.imageStringwhatap/kube_monImage of the nodeHelper container
daemonSet.containers.nodeHelper.requests.memoryString100MinodeHelper MEMORY request
daemonSet.containers.nodeHelper.requests.cpuString100mnodeHelper CPU request
daemonSet.containers.nodeHelper.limits.memoryString350MinodeHelper MEMORY limit
daemonSet.containers.nodeHelper.limits.cpuString200mnodeHelper CPU limit
daemonSet.containers.nodeAgent.imageStringwhatap/kube_monImage of the nodeAgent container
daemonSet.containers.nodeAgent.requests.memoryString300MinodeAgent MEMORY request
daemonSet.containers.nodeAgent.requests.cpuString100mnodeAgent CPU request
daemonSet.containers.nodeAgent.limits.memoryString350MinodeAgent MEMORY limit
daemonSet.containers.nodeAgent.limits.cpuString200mnodeAgent CPU limit
deployment.nameStringwhatap-master-agentName of Deployment
deployment.labelStringwhatap-master-agentLabel to assign to Deployment
deployment.replicasInt1Number of replicas in Deployment
deployment.containers.controlPlaneHelper.enabledBooleantrueWhether to enable the whatap-control-plane-helper container
deployment.containers.controlPlaneHelper.imageString"whatap/kube_mon"Image of the controlPlaneHelper container
deployment.containers.controlPlaneHelper.portString9496Port number of the controlPlaneHelper container.
deployment.containers.controlPlaneHelper.resources.requests.memoryString"300Mi"MEMORY request of the controlPlaneHelper container.
deployment.containers.controlPlaneHelper.resources.requests.cpuString"100m"CPU request of the controlPlaneHelper container
deployment.containers.controlPlaneHelper.resources.limits.memoryString"350Mi"MEMORY limit of the controlPlaneHelper container.
deployment.containers.controlPlaneHelper.resources.limits.cpuString"200m"CPU limit of the controlPlaneHelper container.
deployment.containers.masterAgent.nameStringwhatap-master-agentName of the masterAgent container.
deployment.containers.masterAgent.imageString"whatap/kube_mon"Image of the masterAgent container
deployment.containers.masterAgent.portInt6600Port number of the masterAgent container.
deployment.containers.masterAgent.resources.requests.memoryString"300Mi"MEMORY request of the masterAgent container
deployment.containers.masterAgent.resources.requests.cpuString"100m"CPU request of the masterAgent container
deployment.containers.masterAgent.resources.limits.memoryString"350Mi"MEMORY limit of the masterAgent container
deployment.containers.masterAgent.resources.limits.cpuString"200m"CPU request of the masterAgent container
Note

For the guide to Installation troubleshooting based on the Helm chart, see the following.

Checking the Kubernetes agent installation

If the Kubernetes agent installation has been completed, you can check the status of the master agent and node agent by executing the following command:

kubectl get pod -n whatap-monitoring

In case the status is Running

If STATUS is in Running, it indicates the installation has been finished as follows. After installing the master and node agents, start monitoring the resources in your Kubernetes environment. Go to Whatap Monitoring Service and then check the performance data collection in Project List and Dashboard > Container Map.

In case the status is not Running

If the STATUS is not Running, it indicates that the installation has not been completed successfully as follows.

  1. Execute the following command on the master node to determine the cause of the Pod creation failure.

    kubectl describe pod {POD_NAME} -n whatap-monitoring
  2. Check the Events: item at the bottom of the execution result.

Tip

When using the kubectl command, the -n {namespace} option performs the task for specific namespaces. Because the WhaTap agent is installed in the namespace named whatap-monitoring by default, add the -n whatap-monitoring option.

Note
  • To proceed with the application agent installation, select Application Agent Installation at the lower right of the screen. For more information, see the following.
  • To update the agent to the latest version, see the following.