diff --git a/kubernetes/tools/nsenter.sh b/kubernetes/tools/nsenter.sh new file mode 100755 index 0000000..25bc48b --- /dev/null +++ b/kubernetes/tools/nsenter.sh @@ -0,0 +1,44 @@ +#!/bin/sh +set -x + +node=${1} +#nodeName=$(kubectl get node ${node} -o template --template='{{index .metadata.labels "kubernetes.io/hostname"}}') +nodeSelector='"nodeSelector": { "kubernetes.io/hostname": "'${node:?}'" },' +podName=${USER}-nsenter-${node} +kubectl -n kube-system run ${podName:?} --restart=Never -it --rm --image overriden --overrides ' +{ + "spec": { + "hostPID": true, + "hostNetwork": true, + '"${nodeSelector?}"' + "tolerations": [{ + "operator": "Exists" + }], + "containers": [ + { + "name": "nsenter", + "image": "mirror.gcr.io/library/busybox:musl", + "command": ["sh", "-c", "mkdir -p /host/var/lib/busybox; cp -r /bin/busybox /host/var/lib/busybox/; export PATH=\"$PATH:/var/lib/busybox\"; /host/var/lib/busybox/busybox --install /host/var/lib/busybox; nsenter -t1 -m -u -i -n /var/lib/busybox/busybox sh"], + "stdin": true, + "tty": true, + "securityContext": { + "privileged": true + }, + "volumeMounts": [ + { + "name": "host-tmp", + "mountPath": "/host/var" + } + ] + } + ], + "volumes": [ + { + "name": "host-tmp", + "hostPath": { + "path": "/var" + } + } + ] + } +}'