Перейти к содержимому
Главная страница » Как запускать бессерверные рабочие нагрузки с помощью Knative в Docker

Как запускать бессерверные рабочие нагрузки с помощью Knative в Docker

Автор выбрал Фонд открытого Интернета/Свободы слова для получения пожертвования в рамках программы Write for DOnations.

Введение

Kubernetes — это мощный инструмент оркестрации контейнеров, который позволяет развертывать контейнерные приложения и управлять ими, но иногда для управления базовой инфраструктурой может потребоваться время. Бессерверная парадигма помогает пользователям развертывать приложения, не беспокоясь о базовой инфраструктуре. С появлением Serverless 2.0 многие платформы и инструменты теперь позволяют развертывать бессерверные приложения в Kubernetes.

Knative — это платформа на базе Kubernetes, которая предоставляет компоненты для развертывания и управления бессерверными рабочими нагрузками. Knative предлагает интеграцию Kubernetes с открытым исходным кодом, облачную агностицизм, строительные блоки и расширяемость. Такие инструменты, как Openshift от Red Hat, также используют Knative, чтобы пользователи могли развертывать свои бессерверные рабочие нагрузки поверх Kubernetes.

В Knative есть два основных компонента: Eventing и Serving. Eventing управляет событиями, которые запускают бессерверные рабочие нагрузки. Обслуживание — это набор компонентов для развертывания и управления бессерверными рабочими нагрузками. Knative Serving позволяет разработчикам развертывать бессерверные приложения и управлять ими поверх Kubernetes. С помощью Knative Serving разработчики могут быстро и легко развертывать новые сервисы, масштабировать их вверх и вниз и подключать к другим сервисам и источникам событий. Эта функция позволяет разработчикам создавать и развертывать современные облачные приложения, которые являются гибкими, масштабируемыми и простыми в обслуживании.

В этом руководстве вы будете использовать Knative Serving для развертывания приложения Node.js в качестве бессерверной рабочей нагрузки в кластере DigitalOcean Kubernetes. Вы будете использовать doctl (CLI DigitalOcean) и kn (CLI Knative) для создания кластера Kubernetes и развертывания приложения.

Предварительные условия

Чтобы выполнить это руководство, вам понадобится следующее:

  • Учетная запись DigitalOcean, которую вы будете использовать для запуска кластера Kubernetes с объемом оперативной памяти не менее 4 ГБ и двумя ядрами ЦП. Если у вас его нет, зарегистрируйте новую учетную запись. Эта установка будет использовать кластер DigitalOcean Kubernetes. Чтобы создать кластер Kubernetes в облачной панели DigitalOcean, ознакомьтесь с нашим кратким руководством по Kubernetes.
  • Чтобы следовать этому руководству с удаленного сервера, вы можете настроить сервер Ubuntu 22.04 с пользователем без полномочий root и брандмауэром, выполнив нашу первоначальную настройку сервера. Чтобы начать работу с дроплетом DigitalOcean, вы можете воспользоваться нашим кратким руководством по дроплету.
  • Клиент командной строки DigitalOcean, doctl , установленный на вашем компьютере. Рекомендуется использовать вариант GitHub Download . Дополнительную информацию об использовании doctl см. в разделе «Как использовать doctl .
  • kubectl установленный на вашем компьютере, который вы можете настроить с помощью документации по установке Kubernetes.
  • На вашем компьютере установлен Docker, который вы можете настроить, выполнив шаги 1 и 2 нашего руководства по установке и использованию Docker.
  • Пример приложения Node.js, настроенный в соответствии с руководством «Как создать приложение Node.js с помощью Docker» для создания приложения и отправки его образа контейнера в Docker Hub.
  • Учетная запись в Docker Hub для хранения образов Docker, которую вы создадите в ходе этого руководства.

Шаг 1 — Запуск кластера DigitalOcean Kubernetes

Поскольку Knative — это платформа на базе Kubernetes, вы будете использовать ее с кластером Kubernetes в DigitalOcean. Существует несколько способов запустить кластер Kubernetes в DigitalOcean. Вы можете использовать интерфейс DigitalOcean Cloud, интерфейс командной строки DigitalOcean или поставщика Terraform.

В этом руководстве вы будете использовать doctl , клиент командной строки DigitalOcean, для запуска кластера Kubernetes. Если вы еще не установили doctl , следуйте инструкциям в официальном руководстве по установке.

Чтобы эффективно использовать Knative в этом руководстве, вам понадобится кластер Kubernetes как минимум с 4GB RAM и 2 CPU cores . Вы можете запустить кластер с именем knative-tutorial с этими спецификациями, выполнив команду doctl со следующими флагами:

  • --size указывает размер удаленного сервера.
  • --count указывает количество узлов, которые будут созданы как часть кластера.

Чтобы создать кластер DigitalOcean Kubernetes, выполните следующую команду:

  1. doctl создание кластера Kubernetes Knative-учебник --size s-2vcpu-4 ГБ --count 3

С помощью этой команды вы создаете кластер с именем knative-tutorial с size 4 ГБ ОЗУ, 2 ядрами ЦП и count узлов 3 .

Note: Вы также можете использовать флаг --region , чтобы указать, в каком регионе будет расположен сервер, хотя в этом руководстве этот параметр не используется. Если вы используете удаленный сервер, например Droplet, возможно, вы захотите разместить свой кластер в том же регионе, что и сервер. Если вы используете панель управления DigitalOcean для создания кластера, вы можете выбрать регион центра обработки данных и сеть VPC. Для получения дополнительной информации о региональной доступности DigitalOcean вы можете обратиться к нашей Матрице региональной доступности.

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

Выход
Примечание. Кластер инициализируется и ожидает запуска кластера......................... ............. Примечание. Кластер создан, получение учетных данных. Примечание. Добавление учетных данных кластера в файл kubeconfig, расположенный в «/home/sammy/.kube/config». : Установка текущего контекста для do-nyc1-knative-tutorial ID Имя Регион Версия Статус автоматического обновления Пулы узлов d2d1f9bc-114b-45e7-b109-104137f9ab62 Knative-учебник nyc1 1.24.4-do.0 ложный запуск knative-tutorial-default-pool

Теперь кластер готов к использованию.

Теперь вы можете проверить, настроен ли kubectl в вашей системе и может ли он получить доступ к кластеру DigitalOcean Kubernetes, с помощью следующей команды:

  1. информация о кластере kubectl

Вы должны получить аналогичный вывод:

Выход
Плоскость управления Kubernetes работает на https://69de217e-0284-4e18-a6d7-5606915a4e88.k8s.ondigitalocean.com CoreDNS работает на https://69de217e-0284-4e18-a6d7-5606915a4e88.k8s.ondigitalocean.com/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

Поскольку в выводе перечислены URL-адреса control plane и службы CoreDNS (выделены в блоке вывода), вы знаете, что kubectl правильно настроен в вашей системе и может связаться с кластером.

В рамках процесса создания кластера doctl автоматически настраивает контекст kubectl для использования нового кластера. Вы можете убедиться в этом, выполнив следующую команду:

  1. конфигурация kubectl текущий контекст

Эта команда вернет имя текущего контекста.

Вы должны получить следующий вывод:

Выход
do-nyc1-knative-учебник

Вывод указывает, что текущий контекст — do-nyc1-knative-tutorial , который представляет собой имя созданного вами кластера с указанием региона, в котором он расположен ( nyc1 ).

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

  1. kubectl получить узлы

Команда kubectl get nodes выводит список всех узлов в кластере, а также их статус и другую информацию.

Вы должны получить следующий вывод:

Выход
ИМЯ СТАТУС РОЛЬ ВОЗРАСТ ВЕРСИЯ do-nyc1-knative-tutorial-159783000-0v9k5 Готово <нет> 2m52s v1.24.4 do-nyc1-knative-tutorial-159783000-1h4qj Готово <нет> 2m52s v1.24.4 do-nyc1-knative-tutorial -159783000-1q9qf Готов <нет> 2m52s v1.24.4

В выходных данных указано, что в кластере есть три узла, готовых принимать рабочие нагрузки.

На этом этапе вы запустили кластер Kubernetes в DigitalOcean. Теперь вы можете установить Knative для развертывания бессерверной рабочей нагрузки в Kubernetes.

Шаг 2 — Установка Knative Serving

На этом этапе вы установите Knative Serving в свой кластер Kubernetes. Knative Serving отвечает за развертывание и управление вашими бессерверными рабочими нагрузками.

Чтобы установить Knative Serving, вам потребуются основные компоненты Knative и специальные ресурсы. Запустите эти команды, чтобы установить основные компоненты:

  1. kubectl apply -f https://github.com/knative/serving/releases/download/knative-v1.8.0/serving-crds.yaml
  2. kubectl apply -f https://github.com/knative/serving/releases/download/knative-v1.8.0/serving-core.yaml

Команда kubectl apply устанавливает основные компоненты Knative и пользовательские ресурсы в ваш кластер. Флаг -f указывает файл, содержащий изменения конфигурации. В этом случае изменения конфигурации находятся в файлах YAML, которые вы загружаете из репозитория Knative.

Выполнение этих команд займет несколько минут. Вы получите следующий вывод (вывод ниже сокращен для краткости):

Выход
customresourcedefinition.apiextensions.k8s.io/certificates.networking.internal.knative.dev создал customresourcedefinition.apiextensions.k8s.io/clusteringresses.networking.internal.knative.dev создал customresourcedefinition.apiextensions.k8s.io/configurations.serving.knative. dev создал customresourcedefinition.apiextensions.k8s.io/images.caching.internal.knative.dev создал customresourcedefinition.apiextensions.k8s.io/ingresses.networking.internal.knative.dev создал ...

Этот вывод указывает на то, что основные компоненты Knative и пользовательские ресурсы находятся в вашем кластере. Все компоненты находятся в пространстве имен knative-serving .

После завершения загрузки вы можете убедиться, что Knative Serving установлен:

  1. kubectl get pods --namespace knative-serving

Команда kubectl get pods получит список всех модулей, запущенных в кластере в пространстве имен knative-serving . Эта команда определяет модули в вашем кластере, их текущий статус, количество контейнеров в модуле и имена контейнеров в определенном пространстве имен.

Вы должны получить аналогичный вывод:

Выход
ИМЯ ГОТОВ СТАТУС ПЕРЕЗАПУСКАЕТ ВОЗРАСТ activator-5f6b4bf5c8-kfxrv 1/1 Выполняется 0 4m37s autoscaler-bc7d6c9c9-v5jqt 1/1 Выполняется 0 4m34s контроллер-687d88ff56-9g4gz 1/1 Выполняется 0 4m32s domain-mapping-69cc86d8d5-k r57g 1/1 Бег 0 4m29s domainmapping-webhook-65dfdd9b96-nzs9c 1/1 Выполняется 0 4m27s net-kourier-controller-55c99987b4-hkfpl 1/1 Выполняется 0 3m49s webhook-587cdd8dd7-qbb9b 1/1 Выполняется 0 4m22s

В выводе отображаются все модули, работающие в пространстве имен knative-serving . Модули отвечают за различные компоненты Knative Serving.

Knative требует сетевого уровня для маршрутизации входящего трафика к вашим сервисам. Сетевой уровень в Knative позволяет развертывать и обмениваться микросервисами в распределенной среде. Knative Serving поддерживает Istio, Contour и Kourier в качестве сетевого уровня.

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

Установите Kourier с помощью этой команды:

  1. kubectl apply -f https://github.com/knative/net-kourier/releases/download/knative-v1.8.0/kourier.yaml

Вы должны получить следующий вывод:

Выход
namespace/kourier-system настроено configmap/kourier-bootstrap настроено configmap/config-kourier настроено serviceaccount/net-kourier настроеноusterrole.rbac.authorization.k8s.io/net-kourier настроеноusterrolebinding.rbac.authorization.k8s.io/net- настроенный kourier развертывание.apps/net-kourier-controller настроенный сервис/net-kourier-controller настроенный развертывание.apps/3scale-kourier-gateway настроенный сервис/настроенный сервис kourier/kourier-internal настроенный

В выходных данных перечислены все ресурсы, такие как Namespaces и ConfigMaps , созданные в рамках процесса установки Kourier в кластере Kubernetes.

Чтобы настроить Knative для использования Kourier в качестве сетевого уровня, вы отредактируете ConfigMap config-network .

Для этого вам нужно использовать команду kubectl patch для обновления полей объекта в кластере Kubernetes. Вам также придется включить некоторые флаги в эту команду:

  • --namespace указывает, где вы можете найти объект, который хотите исправить.
  • --type указывает, какой патч выполнять при применении конфигураций с помощью команды patch . Доступные типы: json , merge и strategic .
  • --patch указывает данные исправления непосредственно в командной строке, а не в файле.

Запустите эту команду со связанными флагами:

  1. kubectl патч configmap/config-network
  2. --namespace knative-serving
  3. --type объединить
  4. --patch '{"data":{"ingress-class":"kourier.ingress.networking.knative.dev"}}'

Команда kubectl patch исправляет configmap/config-network , присваивая namespace knative-serving и type merge .

Тип исправления merge позволяет выполнять более целевые обновления, тогда как типы исправлений json или strategic обновления позволяют выполнять более комплексные обновления. Тип исправления merge указывает отдельные поля для обновления без включения всей конфигурации ресурса в команду исправления, как в случае с другими типами. Исправляемые данные идентифицируются флагом patch .

Вы должны получить следующий вывод:

Выход
configmap/config-network исправлено

Вывод этой команды гарантирует, что Kourier правильно настроен в кластере.

Наконец, получите внешний IP-адрес балансировщика нагрузки Kourier с помощью следующей команды:

  1. kubectl get svc kourier --namespace kourier-system

Команда kubectl get svc получает информацию о сервисах, запущенных в кластере Kubernetes в указанном пространстве имен (в данном случае kourier-system ). Эта команда выведет список всех служб в кластере с указанием связанных с ними IP-адресов и номеров портов.

Вы должны получить следующий вывод:

Выход
НАЗВАНИЕ ТИП КЛАСТЕР-IP ВНЕШНИЙ IP-ПОРТЫ ВОЗРАСТ курьер LoadBalancer 10.245.186.153 138.197.231.61 80:31245/TCP,443:30762/TCP 2м33с

Вывод команды включает имя службы, тип службы (например, ClusterIP , NodePort и т. д.), IP-адрес кластера и номер порта, а также внешний IP-адрес и номер порта. Числа, перечисленные здесь, являются примерами, поэтому в результатах будут отображаться разные числа.

Подготовка балансировщика нагрузки может занять несколько минут. Вы можете увидеть пустое значение или для поля EXTERNAL-IP . В этом случае подождите несколько минут и повторите команду.

Note: Прежде чем продолжить работу с этим руководством, вам потребуется подготовить балансировщик нагрузки. После заполнения поля EXTERNAL-IP для LoadBalancer вы можете продолжить. В противном случае у вас могут возникнуть проблемы при настройке службы DNS.

Вы также можете настроить DNS для вашего доменного имени, чтобы он указывал на внешний IP-адрес балансировщика нагрузки. Knative предоставляет задание Kubernetes под названием default-domain , которое автоматически настраивает Knative Serving для использования sslip.io в качестве DNS-суффикса по умолчанию.

sslip.io — это служба динамического DNS (системы доменных имен), которая позволяет пользователям получать доступ к своим устройствам, используя собственное доменное имя вместо IP-адреса. Использование sslip.io улучшает удаленный доступ пользователей к своим устройствам без необходимости запоминать сложные IP-адреса.

Чтобы настроить DNS-суффикс по умолчанию, вам необходимо выполнить следующую команду:

  1. kubectl apply -f https://github.com/knative/serving/releases/download/knative-v1.8.0/serving-default-domain.yaml

Вы получите следующий результат:

Выход
job.batch/настроенный сервис домена по умолчанию/настроенный сервис домена по умолчанию

Ресурсы, необходимые для запуска службы Magic DNS, успешно настроены.

Note: При желании вы также можете добавить домен, но это выходит за рамки данной статьи. Вам необходимо настроить поставщика DNS (например, Cloud DNS или Route53) и создать запись A для входного шлюза Knative, которая сопоставлена с IP-адресом вашего кластера Knative. Затем вы обновите конфигурацию входного шлюза Knative, чтобы использовать зону DNS и созданную вами запись A. Вы можете проверить конфигурацию DNS, получив доступ к обслуживающему домену Knative и убедившись, что он разрешается во входной шлюз.

Теперь вы успешно установили Knative Serving в свой кластер Kubernetes. Теперь вы можете развернуть бессерверную рабочую нагрузку с помощью Knative Serving в своем кластере Kubernetes.

Шаг 3. Развертывание бессерверной рабочей нагрузки

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

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

  1. kubectl создать пространство имен бессерверная рабочая нагрузка

Эта команда создаст новое пространство имен под названием serverless-workload .

Вы должны получить следующий вывод:

Выход
настроено пространство имен/бессерверная рабочая нагрузка

Вывод гарантирует, что пространство имен было успешно создано.

Knative Serving использует специальный ресурс под названием Service для развертывания и управления бессерверными рабочими нагрузками. Ресурс Service определяется Knative Serving API.

Как только вы создадите или измените ресурс Service , Knative Serving автоматически создаст новую Revision . Revision — это моментальный снимок вашей рабочей нагрузки на определенный момент времени.

Всякий раз, когда создается новая Revision , трафик будет направляться к новой Revision по Route . Knative Serving автоматически создает Route для каждой службы. Вы можете получить доступ к своей рабочей нагрузке, используя доменное имя из Route .

Чтобы развернуть бессерверную рабочую нагрузку на Knative, необходимо создать ресурс Service . Вы можете добиться этого двумя разными способами:

  • Используя kn , официальный инструмент Knative CLI.
  • Использование инструмента командной строки kubectl для применения файлов YAML к вашему кластеру Kubernetes.

В следующих подразделах вы будете использовать каждый из этих методов.

Вариант 1 — Использование Knative CLI

Knative CLI, kn , представляет собой интерфейс командной строки, позволяющий взаимодействовать с Knative.

Сначала установите kn , загрузив последнюю версию двоичного файла Knative CLI:

  1. wget https://github.com/knative/client/releases/download/knative-v1.8.1/kn-linux-amd64

Команда wget получит инструмент.

Затем переместите двоичный файл в папку kn :

  1. МВ КН-Linux-AMD64 КН

Затем сделайте его исполняемым с помощью следующей команды:

  1. chmod +x кн

Наконец, переместите исполняемый двоичный файл в каталог по вашему PATH :

  1. cp kn /usr/local/bin/

Убедитесь, что kn установлен:

  1. кн-версия

Вы должны получить аналогичный вывод:

Выход
Версия: v1.8.1 Дата сборки: 20 октября 2022 г., 16:09:37 Версия Git: 1db36698 Поддерживаемые API: * Обслуживание —serving.knative.dev/v1 (knative-serving v1.8.0) * Обработка событий — source.knative. dev/v1 (knative-eventing v1.8.0) - eventing.knative.dev/v1 (knative-eventing v1.8.0)

В выводе этой команды указано, что kn установлен.

Чтобы развернуть приложение Node.js с помощью kn , вы будете использовать команду kn service create . С помощью этой команды вы добавите несколько флагов:

  • --image указывает образ контейнера, который вы хотите развернуть.
  • --port указывает порт, который прослушивает ваше приложение.
  • --name указывает имя Service , которую вы хотите создать.
  • --namespace указывает пространство имен, в котором вы хотите развернуть рабочую нагрузку.

Чтобы развернуть приложение Node.js, выполните следующую команду и обновите выделенную часть своим именем пользователя DockerHub:

  1. служба kn создания узла-службы
  2. --изображение ваше_dockerhub_имя_пользователя /nodejs-image-demo
  3. --порт 8080
  4. --namespace бессерверная рабочая нагрузка

Команда kn service создает Knative Service с именем node-service с port , установленным на 8080 , и флагом namespace , установленным на serverless-workload . Флаг image указывает расположение контейнера приложения, загруженного в Dockerhub.

Вы должны получить следующий вывод:

Выход
Создание службы «node-service» в пространстве имен «serverless-workload»: 0,236 с. Конфигурация «node-service» ожидает готовности версии. 2.230с... 2.311с Вход еще не согласован. 2,456 с. Ожидание готовности балансировщика нагрузки. 2,575 с. Готов к работе. Сервис node-service, созданный в последней версии node-service-00001, доступен по URL: http://node-service.serverless-workload.138.197.231.61.sslip.io.

Эти выходные данные предоставляют статус создания Service Knative. После создания Service вы найдете URL-адрес Route , связанного с Service .

Выполните следующую команду, чтобы убедиться, что ресурс Service создан:

  1. список служб kn --namespace serverless-workload

Команда kn service list перечисляет все службы, развернутые в настоящее время с помощью Knative Serving в определенном пространстве имен в кластере Kubernetes. Эта команда позволяет вам получить доступ к сведениям о каждой службе, включая ее имя, статус и URL-адрес.

Вы должны получить аналогичный вывод:

Выход
ИМЯ URL ПОСЛЕДНИЕ ВОЗРАСТНЫЕ УСЛОВИЯ ГОТОВНОСТЬ ПРИЧИНА node-service http://node-service.serverless-workload.138.197.231.61.sslip.io node-service-00001 88s 3 OK / 3 True

Из этих выходных данных вы можете убедиться, что новая Service Knative была создана командой kn service , которую вы выполнили ранее. Вы также найдете URL-адрес Route , Age и Status службы.

В этом разделе вы установили Knative CLI и использовали его для развертывания бессерверной рабочей нагрузки для вашего приложения Node.js.

Вариант 2. Создание ресурса службы с использованием файлов YAML.

Вы также можете развернуть ресурс Service , создав файл YAML, который определяет ресурс. Этот метод полезен для обеспечения контроля версий ваших рабочих нагрузок.

Сначала вы создадите подкаталог в каталоге, содержащем ваш Dockerfile . В этом руководстве для подкаталога используется имя knative . Создайте папку:

  1. мкдир родной

Далее вы создадите файл YAML с именем service.yaml в каталоге knative :

  1. нано родной /service.yaml

Во вновь созданный файл service.yaml добавьте следующие строки, чтобы определить Service , которая будет развертывать ваше приложение Node.js:

~/node_project/knative/service.yaml
 apiVersion : serving.knative.dev/v1 kind : Service metadata : name : узел  yaml  служба пространство имен : бессерверный режим  рабочая нагрузка спецификация : шаблон : метаданные : имя : узел  yaml  сервис  v1 спецификация : контейнеры : - изображение : docker.io/ ваше_dockerhub_имя_пользователя /nodejs - image - демо - порты : -ContainerPort : 8080

YAML-файл Knative Service содержит следующую информацию:

  • name в первом разделе metadata указывает name ресурса Service .
  • namespace указывает namespace , в котором вы хотите развернуть рабочую нагрузку.
  • name в первом разделе spec указывает name Revision .
  • image во втором разделе spec указывает image контейнера, который вы хотите развернуть.
  • containerPort указывает port прослушивает ваше приложение.

Обязательно обновите выделенный текст информацией, которую вы выбрали для своего приложения и системы, а также своим именем пользователя DockerHub.

Сохраните и закройте файл.

Теперь вы можете развернуть ресурс Service , выполнив следующую команду:

  1. kubectl применить -f родной /service.yaml

Вы должны получить следующий вывод:

Выход
service.serving.knative.dev/node-yaml-service создан.

Вывод показывает, что ресурс Service был успешно создан.

Выполните следующую команду, чтобы убедиться, что ресурс Service создан:

  1. список служб kn --namespace serverless-workload

Команда kn service list перечисляет все службы, развернутые в настоящее время с помощью Knative Serving в определенном пространстве имен. Эта команда позволяет вам получить доступ к подробной информации о каждой услуге.

Вы должны получить следующий вывод:

Выход
ИМЯ URL ПОСЛЕДНИЕ ВОЗРАСТНЫЕ УСЛОВИЯ ГОТОВНОСТЬ ПРИЧИНА node-service http://node-service.serverless-workload.174.138.127.211.sslip.io node-service-00001 9d 3 OK / 3 True узел-yaml-сервис http://node-yaml-service.serverless-workload.174.138.127.211.sslip.io node-yaml-service-v1 9d 3 OK/3 True

Вы можете убедиться, что новая Service Knative была создана на основе YAML-файла Knative Service, который вы выполнили ранее. В этом разделе вы создали node-yaml-service . Вы также можете найти URL-адрес Knative Route .

В этом разделе вы использовали файл YAML для создания бессерверной рабочей нагрузки для вашего приложения Node.js.

На этом этапе вы создали ресурс Knative Service , используя инструмент kn CLI и файл YAML. Далее вы получите доступ к рабочей нагрузке приложения, которое вы развернули с помощью Knative.

Шаг 4. Доступ к рабочей нагрузке приложения

Теперь, когда вы развернули бессерверную рабочую нагрузку, вы можете получить к ней доступ с помощью URL-адреса из Knative Route , созданного как часть бессерверной рабочей нагрузки. Knative Route определяет, как входящий HTTP-трафик должен направляться к определенной службе или приложению.

Чтобы получить список всех маршрутов Knative, выполните следующую команду:

  1. список маршрутов kn --namespace serverless-workload

Команда kn route list перечисляет все маршруты Knative в определенном пространстве имен в кластере Kubernetes.

Вы должны получить аналогичный вывод:

Выход
ИМЯ URL ГОТОВЫЙ node-service http://node-service.serverless-workload.138.197.231.61.sslip.io True node-yaml-service http://node-yaml-service.serverless-workload.138.197.231.61.sslip .io Правда

Вы будете использовать URL-адреса, сгенерированные для Knative Routes, чтобы убедиться, что все работает должным образом.

Откройте любой из URL-адресов в браузере. Когда вы заходите на сайт в браузере, загружается целевая страница вашего приложения Node:

Снимок экрана приложения Node.js, развернутого с помощью Knative Бессерверная рабочая нагрузка

Вы успешно развернули бессерверную рабочую нагрузку с помощью Knative в своем кластере Kubernetes.

Заключение

В этом руководстве вы развернули бессерверную рабочую нагрузку с помощью Knative. Вы создали ресурс Knative Service с помощью инструмента kn CLI и файлов YAML. Этот ресурс развернул приложение Node.js в вашем кластере Kubernetes, к которому вы получили доступ с помощью URL-адреса Route .

Дополнительные сведения о функциях, предлагаемых Knative, таких как автоматическое масштабирование модулей, постепенное внедрение трафика в версию и компонент Eventing, см. в официальной документации Knative.

Чтобы продолжить сборку с помощью DigitalOcean Kubernetes (DOKS), обратитесь к нашей документации Kubernetes How-To. Вы также можете узнать больше о DOKS, например о функциях и доступности. Для устранения неполадок DOKS вы можете обратиться к нашим руководствам по поддержке Kubernetes.

Продолжайте разработку с помощью управляемого DockerHosting.

Инженер-программист

Технический редактор

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *