Я новичок в k8s, и здесь я столкнулся с небольшой проблемой.
Здесь контекст: мне нужно вызвать kubectl delete [podname]
через crontask один раз в день и дождаться, пока k8s не воссоздает модуль, а затем войдите в контейнер в этом контейнере и запустите команду оболочки.
Поэтому я запрашиваю развертывание и получаю что-то вроде этого:
[email protected]:~$ kubectl get pods
NAME READY STATUS RESTARTS AGE
firstpod-123456789-something 1/1 Running 570 2d
secondpod-http-backend-something 1/1 Running 597 2d
то я написал сценарий bash, который удалял бы стручки в течение 5 минут. Это легкая часть.
Предположим, что я kubectl delete firstpod-123456789-something
и жду, чтобы k8s воссоздали новый модуль. Этот новый блок будет иметь новое имя, например firstpod-[some random hash here]-something
Проблема в том, что мне нужно записать имя этого модуля в моем сценарии bash, чтобы затем я мог выполнить команду в этом uname -a
например uname -a
или что-то еще, чтобы проверить, что новый модуль работает и работает нормально.
Я просмотрел его и прочитал документы kubectl, но я не думаю, что есть простой способ сделать это через скрипт bash? Я предполагаю, что единственный способ получить название pod здесь будет через API k8s?
Я счастлив использовать любое решение на этом этапе. Интересно, есть ли способ переименовать новый модуль, когда k8s создаст новый? поэтому я мог бы grep для определенного ключевого слова?
Обратите внимание, что я не хочу egrep что-то вроде firstpod-[0-9]-something
потому что это просто пример. У многих стручков много разных имен, это был всего лишь пример.
Спасибо!