cat <<EOF | kubectl apply -f -
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: netstatd
namespace: kube-system
spec:
selector:
matchLabels:
app: netstatd
template:
metadata:
labels:
app: netstatd
spec:
hostNetwork: true
hostPID: true
dnsPolicy: ClusterFirstWithHostNet
containers:
- name: netstatd
image: codemowers/netstatd
imagePullPolicy: Always
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
ports:
- containerPort: 5280
protocol: TCP
name: http
hostPort: 5280
- containerPort: 6280
protocol: TCP
name: http-mux
hostPort: 6280
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: FANOUT_SERVICE
value: netstatd-headless
- name: LOG_LEVEL
value: "info"
securityContext:
privileged: true
volumeMounts:
- name: containerd-sock
mountPath: /run/containerd/containerd.sock
- name: sys-kernel-tracing
mountPath: /sys/kernel/tracing
- name: sys-kernel-debug
mountPath: /sys/kernel/debug
volumes:
- name: containerd-sock
hostPath:
path: /run/containerd/containerd.sock
type: Socket
- name: sys-kernel-tracing
hostPath:
path: /sys/kernel/tracing
type: Directory
- name: sys-kernel-debug
hostPath:
path: /sys/kernel/debug
type: Directory
tolerations:
- effect: NoSchedule
operator: Exists
---
apiVersion: v1
kind: Service
metadata:
name: netstatd-headless
namespace: kube-system
labels:
app: netstatd
spec:
clusterIP: None
selector:
app: netstatd
ports:
- name: http
port: 5280
targetPort: 5280
protocol: TCP
EOF
version: "3.8"
services:
netstatd:
image: codemowers/netstatd
container_name: netstatd
network_mode: host
privileged: true
pid: host
volumes:
- /run/containerd/containerd.sock:/run/containerd/containerd.sock:ro
- /sys/kernel/debug:/sys/kernel/debug:rw
restart: unless-stopped
docker run -d \
--name netstatd \
--privileged \
--network host \
--pid host \
-v /run/containerd/containerd.sock:/run/containerd/containerd.sock:ro \
-v /sys/kernel/debug:/sys/kernel/debug:rw \
codemowers/netstatd