К именам моих подов добавляется динамически сгенерированный идентификатор, например my-app-name-7b587cd75b-dscsr
, который различается при каждом развертывании (в следующий раз это может быть my-app-name-xcgv83bfsd-4kjsf
).
Это делает использование некоторых команд действительно громоздким, потому что каждый раз, когда мне нужно просмотреть журналы, я должен сначала перечислить все модули и скопировать измененное имя в команду logs
: kubectl -n [namespace] logs my-app-name-7b587cd75b-dscsr
.
Есть ли способ пропустить использование имени модуля или его части и сделать что-то вроде kubectl -n [namespace] logs my-pod-name-~
или kubectl -n [namespace] logs service/my-pod-name
, как в команде port-forward
?
Я попытался ввести grep
в команду logs
, чтобы получить имя модуля и запустить logs
в одной команде, но Cmder в Windows, каким бы прекрасным он ни был, похоже, не поддерживает $()
: kubectl -n [namespace] logs $(kubectl -n my-app-name get pod | grep my-app-name | sed 's/ .*//')
bash
вещь, и похоже, что вы Виндовс. Есть несколько оболочек bash, которые работают в Windows / WSL. YMMV. - person spender   schedule 23.07.2019kubectl logs -f deploy/DEPLOYMENT_NAME
, чтобы получить журналы стручков - person Suresh Vishnoi   schedule 23.07.2019