0

I have a pod running in kubernetes and i need to run two commands in one line.

Say,

kubectl exec -it <pod name> -n <namespace > -- bash -c redis-cli

above command will open redis-cli

i want to run one more command after exec in one line ie info, i am trying below which is not working:

kubectl exec -it <pod name> -n <namespace > -- bash -c redis-cli -- info
1
  • Have you checked the answers provided? Did this solved your Issue? Commented Feb 7, 2020 at 11:30

3 Answers 3

1

You have to put your command and all the parameters between apostrophes.

in your example it would be:

kubectl exec -it <pod_name> -n <namespace> -- bash -c 'redis-cli info'

From Bash manual: bash -c: If the -c option is present, then commands are read from the first non-option argument commaqnd_string.

Other option (which in my opinion is a better approach) is to get the output from the command with an instant pod, which creates, runs and deletes the pod right after that, like this:

kubectl run --namespace <YOUR_NAMESPACE> <TEMP_RANDOM_POD_NAME> --rm --tty -i --restart='Never' --env REDIS_PASSWORD=$REDIS_PASSWORD --image docker.io/bitnami/redis:5.0.7-debian-10-r0 -- bash -c 'redis-cli -h redis-master -a $REDIS_PASSWORD info'

in my case the password was stored in a envvar called $REDIS_PASSWORD and I'm connecting to a server in a pod called redis-master. I let it as I runned it to show that you can use as much parameters as needed.

POC:

user@minikube:~$ kubectl run --namespace default redis-1580466120-client --rm --tty -i --restart='Never' --env REDIS_PASSWORD=$REDIS_PASSWORD --image docker.io/bitnami/redis:5.0.7-debian-10-r0 -- bash -c 'redis-cli -h redis-master -a $REDIS_PASSWORD info'
 10:41:10.65 
 10:41:10.66 Welcome to the Bitnami redis container
 10:41:10.66 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-redis
 10:41:10.66 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-redis/issues
 10:41:10.67 Send us your feedback at [email protected]
 10:41:10.67 

Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Server
redis_version:5.0.7
redis_git_sha1:00000000
redis_git_dirty:0
...
{{{suppressed output}}}
...
# CPU
used_cpu_sys:1.622434
used_cpu_user:1.313600
used_cpu_sys_children:0.013942
used_cpu_user_children:0.008014

# Cluster
cluster_enabled:0

# Keyspace
pod "redis-1580466120-client" deleted

Sign up to request clarification or add additional context in comments.

Comments

0

Not get your question, do you want to get the information from redis-cli?

kubernetes exec -it <pod name> -n <namespace > -- bash -c 'redis-cli info'

Comments

0

Did you try to link your commands using && ?

kubernetes exec -it <pod name> -n <namespace > -- bash -c redis-cli && info

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.