我正在编写一个shell脚本,需要登录pod并在kubernetes pod中执行一系列命令。
下面的是我的sample_script.sh
kubectl exec octavia-api-worker-pod-test -c octavia-api bash
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 :(得分:18)
您是否将所有这些命令作为单行命令运行?首先,这些命令之间没有;
或&&
。因此,如果将其作为多行脚本粘贴到终端,可能会在本地执行。
其次,要告诉bash执行某些操作,您需要:bash -c "command"
。
尝试运行:
$ kubectl exec POD_NAME -- bash -c "date && echo 1"
Wed Apr 19 19:29:25 UTC 2017
1
您可以将其设为多行:
$ kubectl exec POD_NAME -- bash -c "date && \
echo 1 && \
echo 2"
答案 1 :(得分:1)
-t 可以解决您的任务
例如,我在这里运行几个cmd:
const url = this.group.toDataURL({x: group.x(), y: group.y(), width: 500, height: 520 })
p.s。您的示例将是:
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
答案 2 :(得分:0)
以下应该可以工作
<table mat-table [dataSource]="dataSource"> <ng-container matColumnDef="index"> <th mat-header-cell *matHeaderCellDef> No. </th> <td mat-cell *matCellDef="let element; let index = index"> {{index + 1}} </td> </ng-container> <ng-container *ngFor="let column of userColumns" [matColumnDef]="column"> <th mat-header-cell *matHeaderCellDef> {{column}} </th> <td mat-cell *matCellDef="let element"> {{element[column]}} </td> </ng-container> <ng-container matColumnDef="options"> <th mat-header-cell *matHeaderCellDef> </th> <td mat-cell *matCellDef="let element; let index = index"> <ng-container *ngTemplateOutlet="rowBtns;context: element;"> </ng-container> </td> </ng-container> <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr> <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr> </table>
<reusable-table-selector>
<ng-template #rowBtns let-element>
<button mat-icon-button>
<mat-icon>
edit
</mat-icon>
</button>
</ng-template>
</reusable-table-selector>
如果上述命令不起作用,请尝试用以下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