Используя Kubectl, как запустить просмотр Kubernetes с определенной версией ресурса?

#kubernetes #kubectl

#kubernetes #kubectl

Вопрос:

Для поддержки эффективных операций просмотра API Kubernetes поддерживает параметры resourceVersion и resourceVersionMatch , как показано в документации API . Однако я не понимаю, как вы можете это сделать kubectl . Возможно, я что-то здесь упускаю, но я бы ожидал, что будет что-то вроде kubectl get jobs -n mynamespace -w -resourceVersion=24234 запуска просмотра с заданной версией ресурса. Согласно документам API, это эффективный способ выполнения операции просмотра. Но, похоже, я ничего не могу найти в документах kubectl. Может кто-нибудь, пожалуйста, объяснить kubectl , почему не поддерживает версии ресурсов или как это сделать kubectl ?

Комментарии:

1. Вы хотите (и знаете) конкретную историческую версию или просто хотите начать просмотр с настоящего ( kubectl get deployment -w например, для просмотра прогресса развертывания)?

2. @DavidMaze Во всех документах API, которые я прочитал, говорится об использовании версии ресурса при использовании REST API. Наверное, мне интересно kubectl , почему не предоставляется параметр версии ресурса, если это «самый эффективный» способ выполнения просмотра. В идеале у меня была бы версия ресурса, и я мог бы получать все события, которые произошли с этой версии. В конечном итоге я пишу программу, которая делает это с помощью REST API, но я хотел посмотреть, смогу ли я сделать то же самое kubectl .

3.Вы видели, что в этих документах resourceVersion: tracks the persisted version of the object , на которые вы ссылаетесь, используется тот же resourceVersion? Если вы будете редактировать какие-либо ресурсы, например deployment, они также изменяют resourceVersion. Не могли бы вы уточнить?

4. Как насчет kubectl get --raw того, чтобы, например kubectl get --raw /api/v1/namespaces/default/pods?fieldSelector=metadata.name=test-8656bc94b4-ssnkmamp;resourceVersion=4521069amp;watch=true , это сработало бы для вас, или вам нужно что-то большее?

5. resourceVersion помогает обнаруживать изменения конфигурации объекта в определенном кластере. Это помогает только определить, изменился ли определенный объект с момента предыдущей проверки, когда значение resourceVersion было просмотрено и сохранено для будущего сравнения. Он не изменяется постепенно, и я бы не стал полагаться на то, что он сравнивает объекты в разных кластерах или использует его в качестве средства отслеживания версий. kubectl replace команда требует, чтобы значение resourceVersion оставалось неизменным для отредактированного YAML и для объекта в кластере, который должен быть заменен.