Мне интересно знать, как лучше всего автоматизировать YAML
развертывания в Kubernetes
У меня есть установка cert-manager
helm, манифест kong YAML
и ресурс Ingress
, созданный, установленныйи работает в кластере Kubernetes
Это развертывание обеспечивает мне шифрование TLS
для передачи протокола https
в службу приложений, которая также устанавливается через helm (я создал для него таблицу управления)
Моя цель состоит в том, чтобы найти способ выполнения созданных мною YAML
файлов и некоторых команд управления автоматическими способами, а не выполнять вручную шаги и процесс.
Может бытьВажно помнить, что все эти развертывания cert-manager, kong и Ingress связаны с моим приложением-службой helm chart, которое я создал, поэтому я развертывал следующее:
Я создал таблицу управления приложениями-службами и установил ее с помощью команды helm install ...
Я установил kong
и kong-ingress-controller
из манифеста YAML, используя Postgres
как внешнюю службу.
Я установил cert-manager
через helm, добавив его helm repo add jetstack https://charts.jetstack.io
и выполнив
helm install \
--name cert-manager \
--namespace cert-manager \
--version v0.7.0 \
jetstack/cert-manager
Кроме того, я создал ресурсы
Ingress
и
KongIngress
, чтобы разрешить доступ к моей службе приложений рулевого управления и разрешить управлять операциями входа и другими действиями, такими как маршруты, сертификаты и создание службы, а такжесвязать что-то вроде плагина
basic-auth
с моим сервисным приложением
Весь этот процесс был выполнен с помощью kubectl apply ...
выполнения файлов YAML, а также команды helm ....
из CLI.
Это означаетТо, что в настоящее время этот процесс сильно зависит от человеческих событий, и я хотел бы автоматизировать некоторые процессы, такие как процесс установки kong
и cert-manager
и даже, если возможно, создание Ingress
.
Do IПрав ли я, когда думаю, что это возможно?
Как лучше всего это сделать?
Я читал и смотрел в некоторых местах, а некоторыелюди также сориентировали меня в следующих альтернативах:
Сам hooks
описывает следующее:
Некий механизм, позволяющийразработчики диаграмм вмешиваются в определенные моменты жизненного цикла релиза.Например, вы можете использовать перехватчики для:
загрузки ConfigMap или Secret во время установки перед загрузкой любых других диаграмм.
Выполнение задания для резервного копирования базы данных перед установкой новой диаграммы изатем выполните второе задание после обновления, чтобы восстановить данные.
Запустите задание перед удалением выпуска, чтобы аккуратно вывести службу из ротации перед ее удалением
Может бытькрюк руля подойдет к хорошему варианту?Я думаю, что с их помощью я могу автоматизировать или, по крайней мере, приложение helm chart
взять на себя создание секретов и некоторые pre/post-deployment
.
Могу ли я рассмотреть ресурсы kong
, cert-manager
и Ingress
операции (выполнение команд и файлов YAML), такие как операции или действия, которые должны управляться хуками helm?
- Подход Terraform: обеспечение развертывания (некоторые шаги или полностью) из него.
В компании terraform есть провайдеры Helm и Kubernetes.Я мог бы изучить эту возможность установки этих пакетов программного обеспечения из сценариев terraform.
Этот подход terraform может быть полезен для установки my helm chart application
и cert-manager
helm
Kong также как terraformпровайдер
В настоящее время существуют некоторые сторонние репозитории для работы с kong от terraform. Terraform Provider Kong для меня это более уместно, поскольку я использую службу Azure Kubernetes, и различные конфигурации ресурсов, которые можно реализовать, выглядят очень хорошо.Я не уверен, что мне придется вводить вручную что-то вроде ресурсов certificates
, route
, когда я работаю с kong-ingress-controller
и связью cert-manager, но даже этот поставщик terraform kong позволяет мне импортировать существующие маршрутыterraform import kong_route.<route_identifier> <route_id>
Можно ли применить это к certificates
и другим ресурсам?
- Использование сценариев Python
Чтооб автоматизации развертываний через Python?Как идут дела с этой альтернативой?Возможно ли это, взаимодействуя от python до kubernetes и выполняя операции команд, которые я описал выше (kubectl
и helm
для создания ресурсов из файлов YAML и диаграмм рулевого управления, доступных в локальных и удаленных репозиториях)
Inутвердительный случай ... Как я могу обратиться к этой опции?
Я нашел эту опцию, которая использует ansible , но она включает в себя некоторые другие вещи, такие как Automate broker ansible и каталог услуг Kubernetes, которыена данный момент мне неизвестно.
- Использование ноутбуков Jupyter.
Могу ли я создать эти ресурсы (Ingress
и kong и cert-managerустановка и настройка) через ноутбуки Jupyter, записывая напрямую в кластер Kubernetes?Это возможно?Как я могу это сделать?
Итак, я думаю, что подход terraform (использование провайдеров helm
и kong
было бы очень полезным инструментом из инфраструктуры с точки зрения кода, но я не уверенесли бы я выбрал его, может быть, есть ли более сложные альтернативы?
Кто-то провел автоматизацию ресурсов и вещей в кластере Kubernetes. Я полагаю, что это нормальный или ожидаемый процесс, хотя это мой первыйвремя.
Если кто-то может указать мне правильный подход к решению моего конкретного сценария, я буду очень признателен. :) 1155 *