I need to execute a diagnostic program written for my application. The application is running/deployed in a Kubernetes pod. I want to copy a diagnostic executable jar file inside the Kubernetes pod and execute it without stopping the pod. How can this be achieved ? Is there a specific way to run the executable jar using the Kubernetes pod environment in place ?
Can we run an executable jar file inside an already running Kubernetes pod?
Asked Answered
You can try the kubectl cp
command:
From the docs:
Copy /tmp/foo_dir local directory to /tmp/bar_dir in a remote pod in the default namespace
kubectl cp /tmp/foo_dir <some-pod>:/tmp/bar_dir
Copy /tmp/foo local file to /tmp/bar in a remote pod in a specific container
kubectl cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container>
Copy /tmp/foo local file to /tmp/bar in a remote pod in namespace
kubectl cp /tmp/foo <some-namespace>/<some-pod>:/tmp/bar
Copy /tmp/foo from a remote pod to /tmp/bar locally
kubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar
Once the executable is added inside the container, you can exec
into the pod and execute the file manually.
My intent to ask the question was is it possible to run the executable jar file inside a Kubernetes pod and does really it works using the environment inside ? If yes, then is there a specific way to do it ? Copying the file inside the Kubernetes pod isn't an issue here. So, I am modifying the question a bit. –
Pfennig
Once the executable is added inside the container, you can exec into the pod and execute the file manually. –
Expiration
To open up interactive bash terminal
kubectl exec <pod name> -n <namespace> -c <container name> -it bash
After this, find your executable jar and run it. once completed, exit the terminal.
You can run it directly.
kubectl exec <podname> -n <namespace> -c <container name> -- < command to run your jar >
check this official k8s page https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#exec
© 2022 - 2024 — McMap. All rights reserved.