Автор выбрал Фонд открытого Интернета/Свободы слова для получения пожертвования в рамках программы 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, выполните следующую команду:
- 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, с помощью следующей команды:
- информация о кластере 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
для использования нового кластера. Вы можете убедиться в этом, выполнив следующую команду:
- конфигурация kubectl текущий контекст
Эта команда вернет имя текущего контекста.
Вы должны получить следующий вывод:
Выход do-nyc1-knative-учебник
Вывод указывает, что текущий контекст — do-nyc1-knative-tutorial
, который представляет собой имя созданного вами кластера с указанием региона, в котором он расположен ( nyc1
).
Вы также можете проверить, что кластер работает и узлы готовы принимать рабочие нагрузки с помощью этой команды:
- 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 и специальные ресурсы. Запустите эти команды, чтобы установить основные компоненты:
- kubectl apply -f https://github.com/knative/serving/releases/download/knative-v1.8.0/serving-crds.yaml
- 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 установлен:
- 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 с помощью этой команды:
- 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
указывает данные исправления непосредственно в командной строке, а не в файле.
Запустите эту команду со связанными флагами:
- kubectl патч configmap/config-network
- --namespace knative-serving
- --type объединить
- --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 с помощью следующей команды:
- 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-суффикс по умолчанию, вам необходимо выполнить следующую команду:
- 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
для развертывания бессерверной рабочей нагрузки. Вы можете сделать это, выполнив следующую команду:
- 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:
- wget https://github.com/knative/client/releases/download/knative-v1.8.1/kn-linux-amd64
Команда wget
получит инструмент.
Затем переместите двоичный файл в папку kn
:
- МВ КН-Linux-AMD64 КН
Затем сделайте его исполняемым с помощью следующей команды:
- chmod +x кн
Наконец, переместите исполняемый двоичный файл в каталог по вашему PATH
:
- cp kn /usr/local/bin/
Убедитесь, что kn
установлен:
- кн-версия
Вы должны получить аналогичный вывод:
Выход Версия: 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:
- служба kn создания узла-службы
- --изображение ваше_dockerhub_имя_пользователя /nodejs-image-demo
- --порт 8080
- --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
создан:
- список служб 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
. Создайте папку:
- мкдир родной
Далее вы создадите файл YAML с именем service.yaml
в каталоге knative
:
- нано родной /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
, выполнив следующую команду:
- kubectl применить -f родной /service.yaml
Вы должны получить следующий вывод:
Выход service.serving.knative.dev/node-yaml-service создан.
Вывод показывает, что ресурс Service
был успешно создан.
Выполните следующую команду, чтобы убедиться, что ресурс Service
создан:
- список служб 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, выполните следующую команду:
- список маршрутов 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:
Бессерверная рабочая нагрузка
Вы успешно развернули бессерверную рабочую нагрузку с помощью 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.
Инженер-программист
Технический редактор