этикетки на контейнерах в Куберне - PullRequest
0 голосов
/ 29 декабря 2018

Я создаю свой образ докера с помощью jenkins, используя:

docker build --build-arg VCS_REF=$GIT_COMMIT \
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
--build-arg BUILD_NUMBER=$BUILD_NUMBER -t $IMAGE_NAME\ 

Я использовал Docker, но я перехожу на k8.

С помощью докера я мог получить доступ к этим меткам через:

docker inspect --format "{{ index .Config.Labels \"$label\"}}" $container

Как я могу получить доступ к этим ярлыкам с помощью Kubernetes?

Мне известно о добавлении этих ярлыков в .Metadata.labels моих файлов yaml, но мне не нравитсяэто так, потому что - он связывает эту информацию с развертыванием, а не сам контейнер
- может быть изменен в любое время
...

kubectl describe pods

Спасибо

1 Ответ

0 голосов
/ 29 декабря 2018

Kubernetes не раскрывает эти данные.В противном случае он был бы частью API-объекта PodStatus (и его встроенного ContainerStatus ), который является частью данных Pod , которые будут выгруженына kubectl get pod deployment-name-12345-abcde -o yaml.

Вы можете подумать о кодировании некоторых из этих данных в тег изображения Docker;например, если система CI создает теговый коммит, тогда используйте имя тега управления источником в качестве тега изображения, в противном случае используйте хэш коммит или порядковый номер.Другой типичный путь - использовать менеджер развертывания, такой как Helm , в качестве основного источника правды о развертываниях, и если вы это сделаете, может быть путь от вашей системы CD к Helm к Kubernetes, который может передавать метки илианнотаций.Вы также можете часто настраивать программное обеспечение так, чтобы оно знало его собственную дату сборки и идентификатор фиксации контроля источника во время сборки, а затем раскрывать эту информацию через API только для информации (например, вызов HTTP GET /_version или что-то подобное).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...