title | linkTitle | weight | type | aliases | |
---|---|---|---|---|---|
Начало работы с развертыванием приложений |
начало работы |
1 |
docs |
|
Этот гайд показывает, как развернуть приложение с помощью Knative, а затем взаимодействовать с ним с помощью запросов cURL.
Вам потребуется:
Этот гайд демонстрирует базовый рабочий процесс для развертывания примера приложения 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 выполнит следующие шаги:
В качестве альтернативы для развертывания приложения с помощью 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.
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
в вышеупомянутых командах на имя, которое вы ввели.
Теперь вы можете сделать запрос к вашему приложению и увидеть результаты. Замените 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 )