Simple utility for running distributed kubectl exec commands
Project description
multiexec
Simple utility for running a kubectl exec across multiple Pods.
Usage
Call the script with your Pod filters (passed thru to kubectl get pods) and your command (passed thru to kubectl exec -it) as follows:
$ multiexec <POD FILTERS> -- <EXEC COMMAND>
pass --once-per-node to only run the command in a single Pod on each node
Examples
Say hello in every Pod on a given node
$ multiexec --all-namespaces --field-selector spec.nodeName=ip-1-2-3-4.ec2.internal -- /bin/bash -c "echo hello"
ip-1-2-3-4.ec2.internal
$ kubectl exec -it -n namespaceA some-pod-46vp8 -- /bin/bash -c echo hello
hello
$ kubectl exec -it -n namespaceB another-pod-fcvmq -- /bin/bash -c echo hello
hello
$ kubectl exec -it -n namespaceC foo-app-l95cj -- /bin/bash -c echo hello
hello
$ kubectl exec -it -n namespaceD bar-app-6zzb8 -- /bin/bash -c echo hello
hello
Get GPU RAM usage via nvidia-smi on each node in namespaceA
$ multiexec --once-per-node -n namespaceA -- nvidia-smi --query-compute-apps=pid,used_memory --format=csv
ip-1-2-3-4.ec2.internal
$ kubectl exec -it -n namespaceA foo-app-1 -- nvidia-smi --query-compute-apps=pid,used_memory --format=csv
pid, used_gpu_memory [MiB]
5276, 25 MiB
4860, 2437 MiB
ip-2-3-4-5.ec2.internal
$ kubectl exec -it -n namespaceA bar-app-2 -- nvidia-smi --query-compute-apps=pid,used_memory --format=csv
pid, used_gpu_memory [MiB]
12201, 25 MiB
11509, 2539 MiB
14466, 3713 MiB
ip-3-4-5-6.ec2.internal
$ kubectl exec -it -n namespaceA foo-app-2 -- nvidia-smi --query-compute-apps=pid,used_memory --format=csv
pid, used_gpu_memory [MiB]
20570, 25 MiB
19846, 2157 MiB
14641, 2149 MiB
ip-4-5-6-7.ec2.internal
$ kubectl exec -it -n namespaceA bar-app-1 -- nvidia-smi --query-compute-apps=pid,used_memory --format=csv
pid, used_gpu_memory [MiB]
23317, 25 MiB
7236, 4501 MiB
30002, 1009 MiB
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file multiexec-0.0.4.tar.gz.
File metadata
- Download URL: multiexec-0.0.4.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e48082a0d50faf4831dc8714f9a0e148ee0f2ff7edc5d153d716422a1ae5681
|
|
| MD5 |
b8cca59f21eca2d02a6d610b58474939
|
|
| BLAKE2b-256 |
0ac28397be4ad0a8da0e31254e4f2f1e12c766ab560559da5bc9af19a7ade302
|
File details
Details for the file multiexec-0.0.4-py3-none-any.whl.
File metadata
- Download URL: multiexec-0.0.4-py3-none-any.whl
- Upload date:
- Size: 4.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f25828eff9d1655ff979c733c8ac5211511d82acafd9a67734b5ae4293a1a78
|
|
| MD5 |
3d0eb9ea147a317aa303064be1488f3b
|
|
| BLAKE2b-256 |
12ed1027732f2fdbcf6e6cdb3d6084ee46b67e9e4a374b37aad48003f41cbbd6
|