Исследование команды kubectl annotate
Команда kubectl annotate
используется для обновления или удаления аннотаций на ресурсах Kubernetes. Аннотации представляют собой пары "ключ-значение", которые хранят метаданные, включая произвольные строки или структурированный JSON. Они полезны для инструментов и расширений для хранения своих данных.
Запустите следующую команду, чтобы просмотреть доступные параметры для kubectl annotate
:
kubectl annotate -h
Вы увидите следующий вывод:
Обновить аннотации на одном или нескольких ресурсах.
Все объекты Kubernetes поддерживают возможность хранения дополнительных данных в виде аннотаций. Аннотации - это
пары "ключ/значение", которые могут быть больше, чем метки (labels), и включать произвольные строковые значения, такие как структурированный JSON. Инструменты и
системные расширения могут использовать аннотации для хранения своих собственных данных.
Попытка установить уже существующую аннотацию завершится неудачей, если не установлен флаг --overwrite. Если указана версия ресурса (--resource-version) и она не соответствует текущей версии ресурса на сервере, команда завершится неудачей.
Используйте "kubectl api-resources" для получения полного списка поддерживаемых ресурсов.
Примеры:
## Обновить под (pod) 'foo' аннотацией 'description' со значением 'my frontend'
## Если одна и та же аннотация устанавливается несколько раз, будет применено только последнее значение
kubectl annotate pods foo description='my frontend'
## Обновить под, идентифицированный типом и именем в файле "pod.json"
kubectl annotate -f pod.json description='my frontend'
## Обновить под 'foo' аннотацией 'description' со значением 'my frontend running nginx', перезаписывая любое
существующее значение
kubectl annotate --overwrite pods foo description='my frontend running nginx'
## Обновить все поды в пространстве имен
kubectl annotate pods --all description='my frontend running nginx'
## Обновить под 'foo' только в том случае, если ресурс не изменился с версии 1
kubectl annotate pods foo description='my frontend running nginx' --resource-version=1
## Обновить под 'foo', удалив аннотацию с именем 'description', если она существует
## Не требует флага --overwrite
kubectl annotate pods foo description-