Нет сомнений в том, что YAML разработал репутацию для того, чтобы быть болезненным способом определить и развернуть приложения на Kubernetes. Сочетание семантики и пустых мест могут водить некоторые разработчики с ума.
Поскольку Kubernetes продвигаются, это время для нас, чтобы мы исследовали разные варианты, которые могут поддерживать как DEVOPS, так и разработчики в развертывании и управлении приложениями на Kubernetes?
Использование кода для определения … Код …?
Пулуби: Современная инфраструктура как код для разработчиков, A.k.a Новый ребенок на блоке.
Пулуби нацелен на широко распространенную инфраструктуру в виде пространства кода (IAC), но используя другой подход. Это позволяет разработчикам определять инфраструктуру с использованием их языка выбора, таких как Tymdercript, JavaScript, Python и другие, а не проприетарный язык, такой как HCl, от наших друзей на Hashicorp.
Это захватывающий подход, который может принести пользу команды при масштабировании управления и эволюции инфраструктуры, поскольку легче найти людей в вашей группе, которые могут помочь написать, управлять и расширять инфраструктуру в качестве определений кода с использованием существующих языков.
Расширение кетчи
Несмотря на то, что подход, взятый пулуби, интригует, то, как он развертывает приложения на Kubernetes сегодня — очень «ориентирована на инфраструктуру. » То, что я подразумеваю в том, что пулуби требует, чтобы разработчики определили все проявления и объект Kubernetes, поскольку они будут делать с рулем, но используя их предпочтительный язык.
Хотя он может принести некоторые первоначальные преимущества, он все еще требует, чтобы разработчики узнали, как подробно определить объекты в Кубернанах.
Вместо этого, сочетая ориентированный на приложение подход от Кетк С помощью модели IAC от пулумов разработчики могут иметь сосредоточенный накладной слой, который они могут использовать для быстрого развертывания своих приложений, не попадающие в основные детали инфраструктуры, выставленной Kubernetes.
Мы пройдемся по шагам, чтобы развернуть приложение, используя Ketch и Pulumi, но вы можете найти дополнительные детали о плагине здесь:
Документация по провайдеру
Установка кетчи
Вы можете найти подробную информацию о том, как Установите кетч здесь
Установка поставщика Ketch для пультами
Скачать плагин ресурса Ketch для пультами здесь
После загрузки переместите его на локальный путь пуловы:
MV Pulumi-Resource-Ketch $ Home/.Pulumi/Bin
Теперь добавьте пульби на ваш путь, используя команду ниже:
Экспорт путь = $ PATH: $ HOLE/.PULUMI/BIN
Развертывание приложения
С KETH и провайдером для установленных пулумов вы теперь можете развернуть пример приложения.
Для Ketch для развертывания приложений мы сначала должны создать рамку. Frameworks в Ketch переводится на пространство имен в вашем кластере, а при развертывании приложений, ориентированных на эту структуру, они будут развернуты в созданное пространство имен.
Давайте инициализируем пулуби, чтобы мы могли начать. Вы можете сделать это с помощью:
Pulumi New Typeyctry
В результате пулуби создаст структуру файлов, необходимую для вас, чтобы запустить Ketch и Pulumi:
Теперь давайте создадим Кетк Файл определения рамки. Вы можете редактировать index.ts Файл и добавьте следующий контент:
import * as pulumi from "@pulumi/pulumi";
import * as ketch from "@shipa-corp/kpulumi";
const item = new ketch.Framework("dev-framework", {
framework: {
name: "dev",
ingressController: {
className: "istio",
serviceEndpoint: "1.2.3.4",
type: "istio",
}
}
});
export const frameworkName = item.framework.name;
const app = new ketch.App("bulletin-app", {
app: {
name: "bulletin-app",
image: "docker.io/shipasoftware/bulletinboard:1.0",
framework: "dev",
}
});
export const appName = app.app.name;
С index.ts Обновлен файл, установите необходимый пакет NPM, используя команду ниже:
NPM I @ Shipa-Corp/KPulumi
Теперь просто запустите команду ниже, чтобы оба рамки, так и развернутые приложения:
пуловка вверх
Выходе выше, показывает, что как структура, так и приложения были развернуты.
Вы можете проверить каркас, используя команду ниже:
Кетч Framework List.
Как упоминалось выше, когда вы создаете рамки, Кетк автоматически создает пространство имен для него в вашем кластере (Вы также можете поручить кетч использовать существующее пространство имен)
Вы также можете проверить статус вашего приложения и конечную точку, чтобы получить доступ к нему, используя команду ниже:
Список приложений Ketch
Если мы получим доступ к конечной точке, созданной выше, мы видим веб-интерфейс нашего приложения:
Заключение
Объединяя Ketch и Pulumi, вы можете улучшить опыт разработчика при развертывании приложений на Kubernetes.
Мы хотели бы услышать ваши отзывы и вводить, чтобы продолжить улучшение Ketch и построить дополнительных поставщиков.
Поддержите проект
Помогите поддержать кетч, давая ей звезда GitHub!
Оригинал: «https://dev.to/brunoa19/deploying-applications-on-kubernetes-using-typescript-3fn9»