k8spacket - packets traffic visualization for kubernetes

  • By null
  • Last update: Jan 5, 2023
  • Comments: 4

k8spacket - packets traffic visualization for kubernetes

k8spacket helps to understand TCP packets traffic in your kubernetes cluster:

  • shows traffic between workloads in the cluster
  • informs where the traffic is routed outside the cluster
  • displays information about closing sockets by connections
  • shows how many bytes are sent/received by workloads
  • calculates how long the connections are established
  • displays the net of connections between workloads in the whole cluster

k8spacket uses Node Graph API Grafana datasource plugin. See details Node Graph API plugin

Installation

Install k8spacket using helm chart (https://github.com/k8spacket/k8spacket-helm-chart)

  helm repo add k8spacket https://k8spacket.github.io/k8spacket-helm-chart
  helm install k8spacket --namespace k8spacket k8spacket/k8spacket --create-namespace

Add the Node Graph API plugin and datasource to your Grafana instance. You can do it manually or change helm values for the Grafana chart, e.g.:

grafana:
  env:
    GF_INSTALL_PLUGINS: hamedkarbasi93-nodegraphapi-datasource
  datasources:
    nodegraphapi-plugin-datasource.yaml:
      apiVersion: 1
      datasources:
      - name: "Node Graph API"
        jsonData:
          url: "http://k8spacket.k8spacket.svc.cluster.local:8080"
        access: "proxy"
        basicAuth: false
        isDefault: false
        readOnly: false
        type: "hamedkarbasi93-nodegraphapi-datasource"
        typeLogoUrl: "public/plugins/hamedkarbasi93-nodegraphapi-datasource/img/logo.svg"
        typeName: "node-graph-plugin"
        orgId: 1
        version: 1

Add dashboards configmap to Grafana stack

  kubectl -n $GRAFANA_NS apply --recursive -f ./dashboards

Usage

Go to k8spacket - node graph in Grafana Dashboards and use filters as below

Select graph mode (connection, bytes, duration)

docs/graphmode.gif

Filter by namespace

docs/namespace.gif

Filter by include or exclude workflow name

docs/includeexclude.gif

Download

k8spacket.zip

Comments(4)

  • 1

    Why used hostPort in pod of daemonset?

    图片

    Why don't used k8s clouster network ?

    mybe, the monitor message direction is this:

    user --> k8s ingress-controller
                        |--> grafana                                     
                                  |---> k8spackage service 
                                               |--> k8spacket pod 2
                                               |--> k8spacket pod 3
                                               |--> k8spacket pod 1
    
  • 2

    404 page not found

    There is a problem with the test in the grafana data source, and the panel has no data image image How to check availability after deploying k8spacket? image Check that the metrics are available. It is normal for curl 10.64.41.146:8080/nodegraph to output 404 page not found. If it is normal, is there any configuration requirement for grafana? It cannot be displayed after online deployment

  • 3

    chore(): http listening port from env

    Allows to specify from environment variable the address & port k8spacket exposes its http server, fixes #2 On my cluster 1.20.7 at home, cannot run it without =eip nor runAsUser: 0 Any idea why would that be the case ?

  • 4

    fail to run on openshift 4.8

    Hi after installing helm chart version 0.1.1 the pods cant start , regarding "standard_init_linux.go:219: exec user process caused: operation not permitted" errors on pods

    is this app capable to run on openshift platform ?