1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/knative-docs

Клонировать/Скачать
getting-started-knative-app.md 12 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 27.05.2025 06:04 d330922
title linkTitle weight type aliases
Начало работы с развертыванием приложений
начало работы
1
docs
/docs/install/getting-started-knative-app/

Этот гайд показывает, как развернуть приложение с помощью Knative, а затем взаимодействовать с ним с помощью запросов cURL.

Перед началом

Вам потребуется:

  • Кластер Kubernetes с установленным Knative.
  • Изображение приложения, которое вы хотите развернуть, должно быть доступно на контейнерном реестре. Изображение образа примера приложения, используемого в этом гайде, доступно на Google Container Registry.

Пример приложения

Этот гайд демонстрирует базовый рабочий процесс для развертывания примера приложения Hello World (Go) из Google Container Registry. Вы можете использовать эти шаги как руководство для развертывания ваших контейнерных изображений из других реестров, таких как Docker Hub.

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

# Установите dev.local/local-image для развертывания локальных контейнерных изображений
docker tag local-image dev.local/local-image

Узнайте больше о разрешении тега изображения.

Пример приложения Hello World считывает переменную TARGET, а затем выводит "Hello World: ${TARGET}!". Если TARGET не определен, он будет выводить "NOT SPECIFIED".## Создание вашего развертывания с помощью CLI Knative

Наиболее простым способом развернуть службу Knative является использование CLI Knative kn.

Необходимое условие: Установите бинарный файл kn, как описано в Установке CLI Knative.

Он создаст соответствующее внутреннее описание ресурса, как при использовании YAML-файла напрямую. kn предоставляет командную строку для управления службами. Он позволяет настроить каждый аспект службы. Единственным обязательным флагом для создания службы является --image с ссылкой на контейнерное изображение в качестве значения.

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

# Создайте службу Knative с помощью CLI kn
kn service create helloworld-go --image gcr.io/knative-samples/helloworld-go --env TARGET="Go Sample v1"

Если вы хотите развернуть образец приложения, оставьте конфигурационный файл без изменений. Если вы развертываете образ вашего приложения, обновите имя службы (.metadata.name) и ссылку на образ контейнера (.spec.containers[].image) соответственно.

Теперь, когда вы развернули службу, Knative выполнит следующие шаги:

  • Создаст новую неизменяемую ревизию для этой версии приложения.
  • Выполнит сетевое программирование для создания маршрута, входа, службы и балансировщика нагрузки для вашего приложения.
  • Автоматически масштабирует ваши пады вверх и вниз в зависимости от трафика, включая масштабирование до нуля активных падов.## Создание вашего развертывания с помощью YAML

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

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

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

apiVersion: serving.knative.dev/v1 # Текущая версия Knative
kind: Service
metadata:
  name: helloworld-go # Имя приложения
  namespace: default # Пространство имен, используемое приложением
spec:
  template:
    spec:
      containers:
        - image: gcr.io/knative-samples/helloworld-go # Ссылка на образ приложения
          env:
            - name: TARGET # Переменная окружения, выводимая образцом приложения
              value: "Go Sample v1"
```Если вы хотите развернуть образец приложения, оставьте конфигурационный файл без изменений. Если вы развертываете образ вашего приложения, обновите имя службы (`.metadata.name`) и ссылку на образ контейнера (`.spec.containers[].image`) соответственно.Из директории, где был создан новый файл `service.yaml`, примените конфигурацию:

```bash
kubectl apply --filename service.yaml

Теперь, когда вы развернули службу, Knative выполнит следующие шаги:

  • Создаст новую неизменяемую ревизию для этой версии приложения.
  • Выполнит сетевое программирование для создания маршрута, входа, сервиса и балансера нагрузки для вашего приложения.
  • Автоматически масштабирует ваши пады вверх и вниз в зависимости от трафика, включая до нуля активных падов.

Взаимодействие с вашим приложением

Чтобы проверить, успешно ли было развернуто ваше приложение, вам потребуется URL, созданный Knative.

  1. Чтобы найти URL для вашего сервиса, используйте kn или kubectl

{{< tabs name="create" default="kn">}} {{% tab name="kn" %}}

kn service describe helloworld-go

Это вернет что-то вроде

Name        helloworld-go
Namespace   default
Age         12m
URL         http://helloworld-go.default.34.83.80.117.xip.io

Revisions:
  100%  @latest (helloworld-go-dyqsj-1) [1] (39s)
        Image:  gcr.io/knative-samples/helloworld-go (pinned to 946b7c)

Conditions:
  OK TYPE                   AGE REASON
  ++ Ready                  25s
  ++ ConfigurationsReady    26s
  ++ RoutesReady            25s

{{< /tab >}} {{% tab name="kubectl" %}}

kubectl get ksvc helloworld-go

Команда вернет следующее:

NAME            URL                                                LATESTCREATED         LATESTREADY           READY   REASON
helloworld-go   http://helloworld-go.default.34.83.80.117.xip.io   helloworld-go-96dtk   helloworld-go-96dtk   True

{{< /tab >}} {{< /tabs >}} > Примечание: Если ваш URL включает example.com, то обратитесь к инструкциям по настройке для

настройки DNS (например, с помощью xip.io), или использованию пользовательского домена.

Если вы изменили имя с helloworld-go на что-то другое при создании файла .yaml, замените helloworld-go в вышеупомянутых командах на имя, которое вы ввели.

  1. Теперь вы можете сделать запрос к вашему приложению и увидеть результаты. Замените URL на тот, который вернула команда в предыдущем шаге.

    # curl http://helloworld-go.default.34.83.80.117.xip.io
    Привет Мир: Пример на Go v1!

    Если вы развернули ваше приложение, вы можете захотеть настроить этот запрос cURL для взаимодействия с вашим приложением.

    Может потребоваться несколько секунд, чтобы Knative масштабировал ваше приложение и вернул ответ. > Примечание: Добавьте опцию -v, чтобы получить больше деталей, если команда curl не удалась.

Вы успешно развернули ваше первое приложение с помощью Knative!

Очистка

Чтобы удалить образец приложения из вашего кластера, удалите запись сервиса:

kn service delete helloworld-go

В качестве альтернативы, вы также можете удалить сервис с помощью kubectl через файл определения или по имени.

# Удаление сервиса, заданного в файле yaml:
kubectl delete --filename service.yaml

# Или просто удалите его по имени:
kubectl delete kservice helloworld-go

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/knative-docs.git
git@api.gitlife.ru:oschina-mirror/knative-docs.git
oschina-mirror
knative-docs
knative-docs
master