Quiero ejecutar un script local dentro del pod de Kubernetes y luego establecer el resultado de salida en una variable de Linux
Esto es lo que probé:
# if I directly run -c "netstat -pnt |grep ssh", I get output assigned to $result: cat check_tcp_conn.sh #!/bin/bash result=$(kubectl exec -ti <pod_name> -- /bin/bash -c "netstat -pnt |grep ssh") echo "result is $result"Lo que quiero es algo como esto:
#script to be called: cat netstat_tcp_conn.sh #!/bin/bash netstat -pnt |grep ssh #script to call netstat_tcp_conn.sh: cat check_tcp_conn.sh #!/bin/bash result=$(kubectl exec -ti <pod_name> -- /bin/bash -c "./netstat_tcp_conn.sh) echo "result is $result el resultado mostrado result is /bin/bash: ./netstat_tcp_conn.sh: No such file or directory .
¿Cómo puedo permitir que Kubernetes pod ejecute netstat_tcp_conn.sh que está en mi máquina local?
Puede usar el siguiente comando para ejecutar su script en su pod:
kubectl exec POD -- /bin/sh -c "`cat netstat_tcp_conn.sh`"Puede copiar archivos locales en el pod usando el comando kubectl como kubectl cp /tmp/foo :/tmp/
Luego puede cambiar su permiso y hacerlo ejecutable y ejecutarlo usando kubectl exec.