Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Введение
В этом разделе объясняется, как запустить Edge Microgateway в кластере Kubernetes как отдельную службу .
Дополнительные сведения см. в разделе Обзор интеграции Edge Microgateway с Kubernetes .
Прежде чем начать
Выполните действия, описанные в разделе «Предварительные требования» .
Настройка Edge Microgateway
Следующая команда настраивает Edge Microgateway для вашей организации Apigee и развертывает прокси-сервер edgemicro-auth
.
Выполните следующую команду:
edgemicro configure -o [org] -e [env] -u [username]
Где:
org
: название вашей организации Edge (вы должны быть администратором организации).env
: среда в вашей организации (например, тестовая или производственная).username
: адрес электронной почты, связанный с вашей учетной записью Apigee.
Пример
edgemicro configure -o docs -e test -u jdoe@example.com
Вывод (пример показан ниже) сохраняется в файл:
$HOME/.edgemicro/org_name-env_name-config.yaml
.current nodejs version is v6.9.1 current edgemicro version is 2.5.25 password: file doesn't exist, setting up Give me a minute or two... this can take a while... App edgemicro-auth deployed. checking org for existing KVM KVM already exists in your org configuring host edgemicroservices.apigee.net for region us-west1 saving configuration information to: /Users/jdoe/.edgemicro/myorg-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQCV9eBcO9a5WzANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls b2NhbGhvc3QwHhcNMagwODA5MDAzMDEzWhcNMTgwODEwMDAzMDEzWjAUMRIwEAYD VQQDDBlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDh nAHT7JHX/WvWHRFb8FLm53SPIDld5LyPOUfINdEyhSIEeXoOUKg4EPweJPVSC9Vm Hw4ZMtEqWJM/XsQWvLe8ylRJa5wgmzmFCqAsuzs9+rmc9KvJqjpOh2uRTUf7KKfT iXL2UEseprcI5g8zNyqKyEf/ecWIwz3AkkPAZebVTsrdDfIDHvkyhhvlAHZAB9kn GtqP3N8kOlv4KQto9Gr7GYUGUIDugt7gM1F611+RBS+fYRi32GUAq/UQDkhYL8cp oIJiF7UYkk2+9t9CdOCDuIUCvJioHJQd0xvDpkC9f6LvwjwnCwku+4F2Q63+av5I mJoZJQPvW5aP53Qkk+kHAgMBAAEwDKYJKoZIhvcNAQELBQADggEBALyUBolXUFN8 1bf268nR+gS8MOFDTxO1bUz+bKuT/g3K1PuNUJTueT+0L1H2OiZUzazAqwn2sqzN lQuvLg6LjxjlNkqTJGiJvGDcYVq45dv7UyxAZxhqxTxhlQ+Yu5R9pbQnzujezHpH 6gtCoCkSt/QqiJ3YsmsVu5is+HpIJepMt0CyMh5tK9j87hl46QhHklaVfQ3ycMVm /wNPR/pjizg1FDUeq4nj/7DBVbMf9net/BDaZLeSW1HJ1vcsCXIcSZfQd4QymGFn 8ADrND7ydVjwO/s23soPDTy0g4yLIZvky2tpT8d7YahNqSv2n7sXsLxruzcyCoQ4 w+e3Z3F7IKI= -----END CERTIFICATE----- The following credentials are required to start edge micro key: 1a3b2754c7f20614817b86e09895825ecc252d34df6c4be21ae24356f09e6eb4 secret: 16ad2431de73f07f57a6d44048f08d93b63f783bf1f2ac4221182aa7289c7cef edgemicro configuration complete!
Развертывание Edge Microgateway как услуги
Выполните следующую команду, чтобы развернуть Edge Microgateway как услугу в вашем кластере Kubernetes:
kubectl apply -f <(edgemicroctl -org=org -env=env -key=edgemicro-key -sec=edgemicro-secret -conf=file path of org-env-config.yaml)
где:
-
org
— организация Apigee, указанная вами в командеedgemicro configure
. -
env
— среда, указанная вами в командеedgemicro configure
. -
edgemicro-key
— ключ, возвращаемый командойedgemicro configure
. -
edgemicro-secret
— секрет, возвращаемый командойedgemicro configure
. -
file path of org-env-config.yaml
— путь к файлу конфигурации Edge Micro, возвращенному командойedgemicro configure
.
Например:
kubectl apply -f <(edgemicroctl -org=jdoe -env=test -key=989cce9d41cac94e72626d906562a1d76a19445f8901b3508858bb064988eccb -sec=ec92b793178de7b7e88e346f55a951e3fdae05e700e3ddea7d63977826379784 -conf=/Users/jdoe/.edgemicro/jdoe-test-config.yaml)
Пример вывода:
config/myorg-test-config.yaml) service "edge-microgateway" created deployment "edge-microgateway" created secret "mgwsecret" created
-
Скопируйте и вставьте следующий код в свой терминал. Код настраивает Ingress-контроллер для разрешения внешнего доступа к службе
edge-microgateway
. Возможно, вам придется нажать Enter после вставки команды в терминал:cat <<EOF | kubectl apply -f - apiVersion: extensions/v1beta1 kind: Ingress metadata: name: edge-microgateway-ingress annotations: kubernetes.io/ingress.class: "nginx" spec: rules: - http: paths: - path: / backend: serviceName: edge-microgateway servicePort: 8000 EOF
В случае успеха вы увидите этот вывод:
ingress "edge-microgateway-ingress" created
Контроллер Ingress теперь настроен на разрешение внешнего доступа к службе
edge-microgateway
.
Развертывание тестовой службы
Следующие шаги развернут простую тестовую службу в вашем кластере. Контроллер Ingress не позволяет вызывать службу из-за пределов кластера. Позже вы настроите Edge Microgateway для вызова службы в качестве цели. Контроллер Ingress разрешает внешний доступ к службе edge-microgateway
.
Разверните пример службы
helloworld
. Поскольку Ingress не знает об этой службе, ее нельзя вызвать извне кластера.kubectl apply -f samples/helloworld/helloworld-service.yaml
Пример вывода:
service "helloworld" created deployment "helloworld" created
Убедитесь, что развертывание прошло успешно. Обратите внимание, что для службы
helloworld
не существует внешнего IP-адреса. На следующих шагах вы настроите Edge Microgateway для доступа к внутреннему IP-адресу службы.kubectl get services -n default
Пример вывода:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE edge-microgateway NodePort 10.35.247.222 <none> 8000:32000/TCP 12m helloworld NodePort 10.35.245.103 <none> 8081:30294/TCP 47s kubernetes ClusterIP 10.35.240.1 <none> 443/TCP 47m
Настройте Edge Microgateway в качестве прокси для службы.
Получите внутренний IP- адрес службы helloworld
и добавьте его в качестве цели прокси-сервера, поддерживающего микрошлюз. Создание прокси-сервера с поддержкой микрошлюза является стандартным требованием Edge Microgateway.
См. также раздел «Что нужно знать о прокси-серверах с поддержкой Microgateway» .
Получите внутренний IP-адрес для тестовой службы.
Получите внутренний IP-адрес кластера и порт для службы
helloworld
:kubectl get services helloworld
Пример вывода:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE helloworld NodePort 10.55.254.255 <none> 8081:30329/TCP 3m
Скопируйте значения
CLUSTER-IP
иPORT
. Например, в примере выше это значения:10.55.254.255
и8081
. Значения для вашей системы будут другими.
Создайте прокси-сервер с поддержкой микрошлюза в Edge.
- Войдите в пользовательский интерфейс Edge.
- Выберите ту же организацию, которую вы указали ранее при настройке Edge Microgateway.
- В боковом меню навигации выберите «Разработка» > «Прокси API» .
- Нажмите + Прокси . Откроется мастер создания прокси.
- На первой странице мастера выберите Обратный прокси (наиболее распространенный) .
- Нажмите Далее .
На странице мастера «Сведения» выполните настройку следующим образом. Обязательно заполните мастер именно так, как показано. Убедитесь, что имя прокси имеет префикс
edgemicro_
.- Имя прокси: Edgemicro_hello
Базовый путь прокси: /hello
Существующий API:
http://<cluster_ip>:<port>
Например: http://10.55.254.255:8081.
Нажмите Далее .
На странице «Безопасность» мастера выберите «Пропустить (нет)» .
Нажмите Далее .
На странице мастера «Виртуальные хосты» примите значения по умолчанию.
Нажмите Далее .
На странице «Сборка» мастера проверьте настройки прокси-сервера. Убедитесь, что выбрана тестовая среда.
Нажмите «Создать и развернуть» .
Создать разработчика
Вы можете использовать существующего разработчика для тестирования или создать нового следующим образом:
- Выберите «Опубликовать» > «Разработчики» в боковом меню навигации.
- Нажмите + Разработчик.
- Заполните диалоговое окно, чтобы создать нового разработчика. Вы можете использовать любое имя/адрес электронной почты разработчика по вашему желанию.
Создайте продукт API
Создайте продукт API, как описано ниже. Вы добавите в Продукт два прокси: Edgemicro-auth и Edgemicro_hello .
Подробнее о параметрах конфигурации продукта можно прочитать в разделе Что нужно знать о конфигурации продукта API .
- Выберите «Опубликовать» > «Продукты API» в боковом меню навигации.
- Нажмите + Продукт API . Появится страница сведений о продукте.
Заполните страницу сведений о продукте следующим образом. Не нажимайте «Сохранить», пока не получите соответствующее указание.
Имя hello-world-product
Отображаемое имя Edge Micro hello product
Среда test
Доступ Public
Ключевой тип утверждения Automatic
В нижней половине страницы нажмите + Пользовательский ресурс .
Установите ресурс
/
(одиночная косая черта).Снова выберите + Custom Resource и добавьте путь
/**
.В нижней части страницы нажмите + API Proxy .
Выберите прокси с именем Edgemicro-auth .
Нажмите + Прокси API еще раз.
Выберите прокси-сервер с поддержкой микрошлюза с именем Edgemicro_hello .
Нажмите Сохранить .
Создать приложение для разработчика
- Выберите «Опубликовать» > «Приложения» в боковом меню навигации.
- Нажмите + Приложение . Появится страница сведений о приложении разработчика.
Заполните страницу приложения разработчика следующим образом. Не сохраняйте данные до тех пор, пока не будет получено соответствующее указание.
Имя hello-world-app
Отображаемое имя Edge Micro hello app
Разработчик Выберите разработчика тестов, которого вы создали, или подойдет любой разработчик. В разделе «Учетные данные» нажмите + Продукт и выберите созданный вами продукт:
hello-world-product.
Нажмите Сохранить .
Вы вернулись на страницу со списком всех приложений для разработчиков.
Выберите приложение, которое вы только что создали,
hello-world-app
.Нажмите «Показать» рядом с ключом потребителя .
Скопируйте значение ключа потребителя. Это значение представляет собой ключ API , который вы будете использовать для безопасных вызовов API к
/hello
.Подождите несколько минут. Синхронизация изменений, внесенных вами в Apigee Edge, с экземпляром Edge Microgateway, развернутым в кластере, занимает несколько минут.
Тестирование прокси
Получить входной IP-адрес
Используя внешний IP-адрес для входа, вы можете вызывать службу Edge Microgateway из-за пределов кластера.
Получите внешний IP-адрес Ingress-контроллера:
kubectl get ing -o wide
Пример вывода:
NAME HOSTS ADDRESS PORTS AGE edge-microgateway-ingress * 35.238.249.62 80 37m
Скопируйте значение
ADDRESS
для Ingress и экспортируйте его в переменную. Вы можете установить переменную вручную:export GATEWAY_IP=external_ip
Например:
export GATEWAY_IP=35.238.249.62
Или используйте эту команду, чтобы установить его для себя:
export GATEWAY_IP=$(kubectl describe ing edge-microgateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
Убедитесь, что переменная была экспортирована. Например:
echo $GATEWAY_IP
Пример вывода:
35.238.249.62
Вызов API
После того как изменения конфигурации будут перенесены в микрошлюз, вы можете попробовать вызвать API. Вы используете IP-адрес контроллера Ingress (который вы сохранили в переменной GATEWAY_IP
для вызова API, поскольку этот IP-адрес позволяет вам вызывать прокси-сервер из-за пределов кластера Kubernetes. Сопоставление Ingress с Edge Microgateway было создано при развертывании Edge Microgateway в кластере). .
Вызовите API без ключа API. Вы получите сообщение об ошибке, как показано ниже:
curl $GATEWAY_IP:80/hello/
Ожидаемый результат:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
Если вы видите это сообщение, возможно, вам придется подождать немного дольше, пока синхронизация не завершится:
{"message":"no match found for /hello/","status":404}
Для успешных вызовов API вам понадобится ключ API.
Получите ключ потребителя из созданного вами приложения разработчика. Это значение является ключом API, который вам нужен для вызова тестового прокси:
curl -H 'x-api-key:your-edge-api-key' $GATEWAY_IP:80/hello/
Например:
curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP:80/hello/
Выход:
Hello world
Если вы видите ответ «Hello world», значит вы успешно настроили Edge Microgateway для вызова службы helloworld внутри кластера Kubernetes.
Что дальше?
См. раздел «Задачи» для получения информации о добавлении пользовательских плагинов, масштабировании развертывания, внесении изменений в конфигурацию и других задачах, которые вы, возможно, захотите выполнить.