---
id: pod-network-latency
title: Pod Network Latency Experiment Details
sidebar_label: Pod Network Latency
original_id: pod-network-latency
---
---
## Experiment Metadata
| Variables |
Description |
Type |
Notes |
| NETWORK_INTERFACE |
Name of ethernet interface considered for shaping traffic |
Mandatory |
|
| TARGET_CONTAINER |
Name of container which is subjected to network latency |
Mandatory |
|
| NETWORK_LATENCY |
The latency/delay in milliseconds |
Optional |
Default (60000ms) |
| TOTAL_CHAOS_DURATION |
The time duration for chaos insertion (seconds) |
Optional |
Default (60s) |
| TARGET_POD |
Name of the application pod subjected to pod network latency chaos |
Optional |
If not provided it will select from the app label provided |
| TARGET_IPs |
Destination ips for network chaos |
Optional |
if not provided, it will induce network chaos for all ips/destinations |
| TARGET_HOSTS |
Destination hosts for network chaos |
Optional |
if not provided, it will induce network chaos for all ips/destinations or TARGET_IPs if already defined |
| PODS_AFFECTED_PERC |
The Percentage of total pods to target |
Optional |
Defaults to 0% (corresponds to 1 replica) |
| CONTAINER_RUNTIME |
container runtime interface for the cluster |
Optional |
Defaults to docker, supported values: docker, containerd, crio |
| SOCKET_PATH |
Path of the containerd/crio socket file |
Optional |
Defaults to `/run/containerd/containerd.sock` |
| LIB |
The chaos lib used to inject the chaos |
Optional |
Defaults to litmus, only litmus supported |
| TC_IMAGE |
Image used for traffic control in linux |
Optional |
default value is `gaiadocker/iproute2` |
| LIB_IMAGE |
Image used to run the netem command |
Optional |
Defaults to `litmuschaos/go-runner:latest` |
| RAMP_TIME |
Period to wait before and after injection of chaos in sec |
Optional |
|
| INSTANCE_ID |
A user-defined string that holds metadata/info about current run/instance of chaos. Ex: 04-05-2020-9-00. This string is appended as suffix in the chaosresult CR name. |
Ensure that the overall length of the chaosresult CR is still < 64 characters |
|
#### Sample ChaosEngine Manifest
[embedmd]: # "https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/generic/pod-network-latency/engine.yaml yaml"
```yaml
apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
name: nginx-network-chaos
namespace: default
spec:
# It can be delete/retain
jobCleanUpPolicy: "delete"
# It can be true/false
annotationCheck: "true"
# It can be active/stop
engineState: "active"
#ex. values: ns1:name=percona,ns2:run=nginx
auxiliaryAppInfo: ""
monitoring: false
appinfo:
appns: "default"
# FYI, To see app label, apply kubectl get pods --show-labels
applabel: "app=nginx"
appkind: "deployment"
chaosServiceAccount: pod-network-latency-sa
experiments:
- name: pod-network-latency
spec:
components:
env:
#Container name where chaos has to be injected
- name: TARGET_CONTAINER
value: "nginx"
#Network interface inside target container
- name: NETWORK_INTERFACE
value: "eth0"
- name: LIB_IMAGE
value: "litmuschaos/go-runner:latest"
- name: NETWORK_LATENCY
value: "60000"
- name: TOTAL_CHAOS_DURATION
value: "60" # in seconds
# provide the name of container runtime
# it supports docker, containerd, crio
# default to docker
- name: CONTAINER_RUNTIME
value: "docker"
# provide the socket file path
# applicable only for containerd and crio runtime
- name: SOCKET_PATH
value: "/run/containerd/containerd.sock"
```
### Create the ChaosEngine Resource
- Create the ChaosEngine manifest prepared in the previous step to trigger the Chaos.
`kubectl apply -f chaosengine.yml`
- If the chaos experiment is not executed, refer to the [troubleshooting](https://docs.litmuschaos.io/docs/faq-troubleshooting/)
section to identify the root cause and fix the issues.
### Watch Chaos progress
- View network latency by setting up a ping on the affected pod from the cluster nodes
`ping