Развертывание веб-сайта на C# и .NET Core в Kubernetes за 5 минут с помощью Jetpack.io


Развертывание в Kubernetes — это сложно

Возможно, вы можете себе это представить: Мы закончили кодирование веб-сайта и готовы к развертыванию. Мы знаем, что хотим развернуть его на Kubernetes, чтобы воспользоваться преимуществами хостинга промышленного масштаба, автоматической балансировки нагрузки, отказоустойчивости, масштабирования и т. д.

Но развертывание на Kubernetes — это сложно. Теперь нам придется отправиться в страну контейнеров, стручков, сервисов, ingress и yaml. Уф. «Я только что закончил веб-сайт. Я не хочу читать книгу только для того, чтобы заставить его работать». У Kubernetes слишком много опций и концепций: Pods, Deployments, ReplicaSets, Services, ConfigMaps. О, Боже! А yaml-файл Kubernetes действительно запутанный и специфический. Мне бы очень хотелось, чтобы развертывание веб-сайта в Kubernetes было проще.

Почему Jetpack.io

Jetpack.io — это решение с нулевым уровнем DevOps для развертывания в Kubernetes. Jetpack.io берет ваш код, упаковывает его в контейнер и публикует в Kubernetes. Jetpack.io также создает публичный URL-адрес, чтобы сайт был доступен из Интернета, и может передавать журналы приложений на ваш терминал. Все хлопоты, связанные с Kubernetes, исчезают, и мы можем сосредоточиться на нашем приложении.

В этом руководстве мы создадим сайт ASP.NET Core на C#, настроим его для Jetpack.io и развернем его в Kubernetes — и все это за 5 минут.

I. Создание приложения на C# и .NET

В этом примере мы быстро создадим приложение ASP.NET Core MVC. Вы можете изменить эти шаги, чтобы использовать существующий веб-сайт ASP.NET Core или создать сайт с помощью Razor Pages, Web API или Minimal APIs.

  1. Откройте Visual Studio

  2. Если диалог нового проекта не открывается автоматически, выберите File -> New Project.

  3. Выберите ASP.NET (Model, View, Controller) и нажмите кнопку next.

  1. Выберите хорошее имя для этого проекта и сохраните в удобном каталоге.

  2. В разделе Дополнительная информация установите флажок Включить Docker и нажмите Создать.

Для корректной работы этой функции у вас должен быть установлен Docker Desktop.

Теперь у нас есть обычный сайт ASP.NET. Не стесняйтесь настраивать этот сайт под свои нужды.

II. Настройка приложения для Jetpack.io

Jetpack.io предполагает, что ваш веб-сервер работает на порту 8080, но проект по умолчанию в ASP.NET работает на порту 80. В этом разделе мы изменим Dockerfile, чтобы запустить веб-сайт на порту 8080.

  1. В Проводнике решений откройте Dockerfile.

  2. Удалите 2 строки EXPOSE и добавьте новую строку EXPOSE:

   - EXPOSE 80
   - EXPOSE 443
   + EXPOSE 8080
Войти в полноэкранный режим Выйти из полноэкранного режима
  1. Прямо под строкой EXPOSE добавьте переменную окружения, указывающую ASP.NET Core запускаться на порту 8080.
   EXPOSE 8080
   ENV ASPNETCORE_URLS http://+:8080
Вход в полноэкранный режим Выйти из полноэкранного режима

+ указывает ASP.NET прослушивать все интерфейсы, а не только localhost.

  1. Сохраните и закройте Dockerfile.

  2. В проводнике Windows переместите Dockerfile из каталога проекта на 1 уровень вверх в каталог Solution.

Jetpack.io предполагает, что Dockerfile находится в вашем корневом каталоге.

III. Инициализация проекта с помощью Jetpack.io

Jetpack.io нуждается в некоторой начальной конфигурации, чтобы понять веб-сервер ASP.NET. Это нужно сделать только один раз для каждого сайта.

  1. Чтобы установить Jetpack CLI, откройте терминал и выполните команду
   curl https://get.jetpack.io -fsSL | bash
Войти в полноэкранный режим Выйти из полноэкранного режима

Jetpack CLI работает на Linux, macOS и на Windows через WSL2.

  1. Войдите в Jetpack CLI:
   jetpack auth login
Войти в полноэкранный режим Выход из полноэкранного режима

Вход в Jetpack позволяет развертывать на кластере Jetpack.io Kubernetes. Вы также можете развернуть на своем собственном кластере в Azure, AWS, GCP или частной облачной учетной записи.

  1. Инициализируйте проект для Jetpack:
   jetpack init
Войдите в полноэкранный режим Выход из полноэкранного режима

Этот мастер опросит вас и настроит стратегию развертывания Jetpack в соответствии с вашим приложением.

  1. Ответьте «Да, это веб-сервер». Это говорит Jetpack, что мы хотим принимать входящий трафик.

Если бы мы создавали запланированное задание cron или функцию, которая осушает очередь, мы могли бы ответить «нет».

  1. Завершите работу мастера, и Jetpack CLI автоматически создаст соответствующий файл jetconfig.yaml. Вы должны зафиксировать его в системе контроля исходного кода.

IV. Развертывание в Kubernetes с помощью Jetpack.io

Теперь, когда проект настроен для Jetpack, развертывание очень просто.

  1. Откройте терминал в директории с Dockerfile и файлом jetconfig.yaml.

  2. Разверните на Kubernetes:

   jetpack dev
Войдите в полноэкранный режим Выход из полноэкранного режима

Теперь Jetpack делает развертывание очень простым. Это произойдет автоматически:

  • Соберет образ Docker
  • разместит образ в частном реестре
  • Запланирует необходимые ресурсы Kubernetes
  • Создаст публично маршрутизируемый URL-адрес для тестирования веб-сайта
  • Настроить переадресацию портов с локальной машины
  • Транслируйте журналы приложений обратно в терминал
  1. Протестируйте веб-сайт:

В выводе консоли будет указан публично маршрутизируемый URL. Щелкните этот URL-адрес, чтобы просмотреть веб-страницу.

Jetpack также настраивает переадресацию портов, поэтому вы также можете перейти на http://localhost:8080/ для просмотра страницы.

Это было просто

Развернуть приложение ASP.NET, созданное на C#, в Kubernetes с помощью Jetpack.io очень просто. В этом руководстве мы создали сайт, настроили его для Jetpack.io и использовали Jetpack.io для развертывания в Kubernetes. Jetpack.io — это отличное решение для развертывания в Kubernetes с нулевым уровнем DevOps. Посетите сайт https://jetpack.io/docs/, чтобы узнать больше и начать развертывать свой контент в Kubernetes с легкостью.

Оцените статью
devanswers.ru
Добавить комментарий