Executing multiple commands( or from a shell script) in a kubernetes pod

后端 未结 3 2184
生来不讨喜
生来不讨喜 2020-12-18 21:11

I\'m writing a shell script which needs to login into the pod and execute a series of commands in a kubernetes pod.

below is my sample_script.sh

kubect

相关标签:
3条回答
  • 2020-12-18 21:17

    The following should work

    kubectl -it exec podname -- bash -c "ls && ls"

    bin   dev   etc   home  proc  root  run   sys   tmp   usr   var bin  
    dev   etc   home  proc  root  run   sys   tmp   usr   var
    

    If above command doesn't work then try too replace bash with one of the following /bin/bash, sh or /bin/sh

    0 讨论(0)
  • 2020-12-18 21:22

    -t can solve your task

    For example, I run here few cmd:

    kubectl get pods |grep nginx|cut -f1 -d\  |\
    while read pod; \
     do echo "$pod writing:";\
      kubectl exec -t $pod -- bash -c \
       "dd if=/dev/zero of=/feeds/test.bin bs=260K count=4 2>&1|\
        grep copi |cut -d, -f4; \
        a=$SECONDS; echo -ne 'reading:'; cat /feeds/test.bin >/dev/null ; \
        let a=SECONDS-a ; \
        echo $a sec"
    done
    

    p.s. your example will be:

    kubectl exec -t octavia-api-worker-pod-test -c octavia-api -- bash -c "unset http_proxy https_proxy ; mv /usr/local/etc/octavia/octavia.conf /usr/local/etc/octavia/octavia.conf-orig ; /usr/local/bin/octavia-db-manage --config-file /usr/local/etc/octavia/octavia.conf ; upgrade ; head"
    
    0 讨论(0)
  • 2020-12-18 21:40

    Are you running all these commands as a single line command? First of all, there's no ; or && between those commands. So if you paste it as a multi-line script to your terminal, likely it will get executed locally.

    Second, to tell bash to execute something, you need: bash -c "command".

    Try running this:

    $ kubectl exec POD_NAME -- bash -c "date && echo 1"
    
    Wed Apr 19 19:29:25 UTC 2017
    1
    

    You can make it multiline like this:

    $ kubectl exec POD_NAME -- bash -c "date && \
          echo 1 && \
          echo 2"
    
    0 讨论(0)
提交回复
热议问题