Получить строки в БД, соответствующие определенному идентификатору, используя kubectl - PullRequest
1 голос
/ 05 марта 2020

Я пытаюсь получить нет. строк для определенного идентификатора, использующего kubectl, но вместо этого получающего некоторые дополнительные данные.

Команда:

kubectl exec abc-db-0 -n cicd --kubeconfig /root/admin.conf -- bash -c "psql -U postgres -d db -f /tmp/queryInstanceId.sql -v v1=full_test | grep [0-9]"

Фактический результат выполнения вышеуказанной команды:

Defaulting container name to abc-db.
Use 'kubectl describe pod/abc-db-0 -n cicd' to see all of the containers in this pod.
(0 rows)

Ожидаемый результат:

(0 rows)

Может кто-нибудь сообщить мне, что я здесь не так делаю?

Примечание :

Первые 2 строки всегда появляются, когда мы подключаемся к БД вручную, но при выводе я хочу только (0 строк)

1 Ответ

1 голос
/ 11 марта 2020

Первые две строки выводятся как kubectl exec, потому что Pod имеет несколько контейнеров. Это своего рода предупреждение о том, что он выбрал первый, который может быть не тем, который вы хотели использовать.

Вы можете указать целевой контейнер в вашей команде (-c containername):

kubectl exec abc-db-0 -n cicd --kubeconfig /root/admin.conf -c abc-db -- bash -c "psql -U postgres -d db -f /tmp/queryInstanceId.sql -v v1=full_test | grep [0-9]"

Или вы можете перенаправить стандартную ошибку с помощью kubectl ... 2>/dev/null (спецификация c):

kubectl exec abc-db-0 -n cicd --kubeconfig /root/admin.conf -c -- bash -c "psql -U postgres -d db -f /tmp/queryInstanceId.sql -v v1=full_test | grep [0-9]" 2>/dev/null
...