I have one pod running with name 'jenkins-app-2843651954-4zqdp'. I want to install few softwares temporarily on this pod. How can I do this?
I am trying this- kubectl exec -it jenkins-app-2843651954-4zqdp -- /bin/bash
and then running apt-get install commands but since the user I am accessing with doesn't have sudo access I am not able to run commands
kubectl describe pod ... to find the node running your Pod and the container ID (docker://...)docker exec -it -u root ID /bin/bashThere are some plugins for kubectl that may help you achieve this: https://github.com/jordanwilson230/kubectl-plugins
One of the plugins called, 'ssh', will allow you to exec as root user by running (for example)
kubectl ssh -u root -p nginx-0
Building on @jordanwilson230's answer he also developed a bash-script called exec-as which uses Docker-in-Docker to accomplish this: https://github.com/jordanwilson230/kubectl-plugins/blob/krew/kubectl-exec-as
When installed via kubectl plugin manager krew → kubectl krew install exec-as you can simply
kubectl exec-as -u <username> <podname> -- /bin/bash
This only works in Kubernetes clusters which allow priviledged containers.