У меня возникла проблема при развертывании mojaloop .kubernetes отвечает с журналом ошибок, как
Я проверил свою версию Kubernetes, и 1.16 - это версия, так как я могу решить такую проблему с версией API. Из исследования я обнаружил, что Kubernetes не поддерживает apps / v1beta2, apps / v1beta1, так как я могу заставить Kubernetes используйте текущую не поддерживаемую версию или поддерживаемую версию. Я новичок в Kubernetes и все, кто может меня поддержать, я счастлив
Ошибка: проверка не удалась: [невозможно распознать "": нет совпадений для вида "Deployment" в версии "apps / v1beta2", невозможно распознать "": нет совпадений для вида "Deployment" в версии "extensions / v1beta1", невозможно распознать "": нет совпадений для вида "StatefulSet" в версии "apps / v1beta2", невозможно распознать "": нет совпадений для вида "StatefulSet" в версии "apps / v1beta1"]
источник
Ответы:
В Kubernetes 1.16 некоторые
api
s были изменены.Вы можете проверить, какие API поддерживают текущий объект Kubernetes, используя
Это означает, что только apiVersion с
apps
верным для развертываний (extensions
не поддерживаетDeployment
). Та же ситуация с StatefulSet.Вам просто нужно изменить Deployment и StatefuSet apiVersion на
apiVersion: apps/v1
.Если это не помогает, пожалуйста, добавьте свой YAML к вопросу.
РЕДАКТИРОВАТЬ Так как проблема вызвана тем, что шаблоны HELM включали старые apiVersions в Deployments, которые не поддерживаются в версии 1.16, есть 2 возможных решения:
1.
git clone
Полное репозиторий и замена apiVersionapps/v1
во всех шаблонах / deploy.yaml с использованием скрипта2. Используйте старую версию Kubernetes (1.15), когда валидатор принимает
extensions
какapiVersion
дляDeployent
иStatefulSet
.источник
extensions/v1beta1
. В качестве одного из возможных путей обхода можно сделатьgit clone
полное репозиторий и заменить apiVersionapps/v1
во всех сценариях templates / deploy.yaml usinc.find . -name 'deployment.yaml' | xargs -n 1 perl -pi -e 's/(apps\/v1beta2)|(extensions\/v1beta1)/apps\/v1/g'.
Второй обходной путь может заключаться в использовании старой версии Kubernetes (1.15), когда валидатор принимает расширения как apiVersion для Deployent и StatefulSet.Minikube
илиKubeadm
?Вы можете изменить вручную в качестве альтернативы. Получить таблицу управления:
Откройте папку с диаграммой:
Изменить версию API:
Добавить
spec.selector.matchLabels
:Наконец, установите ваш измененный график:
Наслаждайтесь!
источник
Это меня раздражало, потому что я тестирую множество пакетов helm, поэтому я написал быстрый скрипт - который можно изменить, чтобы отсортировать ваш рабочий процесс, возможно, см. Ниже
Новый рабочий процесс Сначала загрузите диаграмму в виде tgz в ваш рабочий каталог
тогда в вашей работе напрямую запустите скрипт bash, который я назвал helmk
Содержимое helmk - необходимо отредактировать ваше имя кластера kubeconfig для работы
Это немного опасный хак, поскольку я вручную переключаюсь на ваш новый требуемый контекст пространства имен, а затем снова обратно, так что его можно использовать только для однопользовательских разработчиков или комментировать.
Вы получите предупреждение об использовании kubectl convert, подобного этому
Если вам нужно отредактировать YAML для настройки - просто замените один из / dev / stdin на промежуточные файлы, но, вероятно, лучше установить его, используя "create" с сохранением конфигурации, как я, а затем просто "применить" ваши изменения это означает, что они будут записаны также в kubernetes. Удачи
источник
Проще говоря, вы не заставляете текущую установку использовать устаревшую версию API, но вы просто исправляете версию в своих конфигурационных файлах, если хотите проверить, какую версию поддерживает текущая версия kube, просто запустите:
root @ ubn64: ~ # kubectl api-версии | grep -i apps
Приложения / v1
корень @ ubn64: ~ #
источник