Я использую k8s kustomize для установки изображения и создания секретного файла.
$(cd ./k8s/overlays/prod && kustomize edit set image gcr.io/PROJECT_ID/image:1.0)
и это работает!
Теперь я пытаюсь использовать kubectl kustomize
, чтобы сделать то же самое, не делая cd . ./k8s/overlays/prod
Возможно ли, чтобы плагин Kustomize был встроен в kubectl?
то же самое для kustomize edit add secret
с kubectl без cd
в каталог?
К сожалению, это невозможно. Встроенная в kubectl команда kustomize
поддерживает только исправление и применение файлов kustomize.
Я рекомендую использовать автономную версию kustomize, так как
kubectl использует kustomize
версию 2.0.4, а самая новая — уже 3.8.8. Использование более старой версии нарушит некоторые функции.
Есть много запросов на поддержку более новой версии внутри kubectl, но есть некоторые технические причины, которые не позволяют это сделать. Вы можете отслеживать прогресс здесь.
Более новый kustomize поставляется в kubectl v1.21, который, наконец, разблокирует более новый kustomize, который разблокирует сценарий OP (согласно ответу @acid_fuji).
Если вы читаете это, рассмотрите возможность голосования за kubectl, чтобы показать, какая версия kustomize в него входит: github.com/kubernetes-sigs/kustomize/issues/1424.
список проблем, которые блокировали принятие новых версий до версии 1.21: github.com/kubernetes-sigs/kustomize/issues/…
Версия 1.22 уже была обновлена, чтобы настроить 4.1.2, но пройдет некоторое время, прежде чем 1.22 будет выпущена, 1.21 только что отправлена, так что 5 месяцев. kustomize можно было снова обновить до выхода 1.22.
Предупреждение: файл kubectl readme на github по-прежнему содержит устаревшую информацию о том, какая версия kustomize входит в комплект.
Предупреждение: kubectl официально поддерживает только 1 минорную версию с вашего сервера k8s api. Поэтому, если ваш кластер работает под управлением 1.18 или 1.19, будьте осторожны, если вы используете новый kubectl v1.21 с ним.
Этот ответ имеет содержание комментария. Пожалуйста, пересмотрите его, чтобы ответить на вопрос.
@AleksandrDubinsky Я не смог отформатировать его как таблицу. Было бы трудно прочитать несколько номеров версий в комментарии. Предыдущий ответ ответил на вопрос, почему ОП был заблокирован, и я опубликовал версию, в которой сценарий ОП разблокирован.
Это не то, как работают ответы на SO. Вы не можете публиковать дополнительную информацию и предполагать, что все прочитали ответ, на который вы отвечаете. Просто включите полезную информацию из другого ответа, чтобы ваш пост был самостоятельным ответом.
@AleksandrDubinsky Спасибо, но k8s — это сложная система со сложной цепочкой инструментов. Те из нас, кто пытается использовать его, могли бы использовать всю помощь, которую мы можем получить. В этой таблице показан огромный скачок в номерах версий kustomize по сравнению с выпуском версии v1.21 k8s, который было бы очень сложно передать в комментарии. Я не буду перечислять или демонстрировать функции kustomize, добавленные между v2 и v4. Другой ответ также не дает прямого ответа на вопрос OP, он также указывает ему на более новую версию kustomize. Почему вы не жалуетесь ему?
Проблема с этим ответом в том, что он фактически неверен. Даже с последним kubectl функциональность kustomize в kubectl по-прежнему ограничена применением и исправлением через kustomization.yaml без редактирования самого kustomization.yaml.
@Blackclaws Весь смысл настройки состоит в том, чтобы генерировать правильные значения для каждого варианта. Вы редактируете вещи в k8s, вы не редактируете результаты настройки через автоматизацию. Редактируем kustumization.yaml вручную или добавляем оверлеи и перегенерируем. У нас есть варианты для таких вещей, как летнее время в США и не летнее время в США, для создания расписаний UTC в разное время года. По крайней мере, так его использует моя команда. kustomize в конвейерах CI/CD, kubectl (прямое редактирование k8s) для однократных или производственных сценариев реконфигурации (или uat или dev и т. д.). Kustomize — неправильный инструмент для живого редактирования.
@yzorg Ну, тот факт, что сам kustomize имеет средства для обновления, например, версии изображения, которое помещается в окончательные манифесты, делает его, по крайней мере, пригодным для использования, если, возможно, не лучшим инструментом для редактирования собственных файлов. Kustomize также не мешает вам использовать его для редактирования файлов kustomization.yml. Особенно в сценарии CI/CD я бы использовал этот инструмент для изменения версии образа, установленного в манифестах. Несмотря на этот факт. По-прежнему верно, что ответ, к которому это комментарий, фактически неверен. Вы можете делать только то, что просил OP, с чистым kustomize
Я попробовал это, и это не сработало.
Большое спасибо @thomas за ваше время и ответ.