Как указать службу Kubernetes в качестве цели HTTP для задачи Google Cloud? - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть сервер nodejs express, работающий на Google Kubernetes Engine, который отображается как служба NodePort на каком-то IP-адресе (скажем, 10.0.20.20).

Я хотел бы использовать эту службу nodejs в качестве обработчика для задач Google Cloud я создал следующую задачу (используя библиотеку Python):

task = {
    'http_request': {
        'http_method': 'POST',
        'url': 'http://10.0.20.20/myendpoint',
        'body': payload
    }
}

Задача создана успешно, однако затем она застревает в очереди, повторяя попытки навсегда. Как настроить свой сервис таким образом, чтобы он был доступен из задач Google Cloud?

1 Ответ

1 голос
/ 29 апреля 2020

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

Я предполагаю, что вы хотите подключиться к этому сервису nodejs из экземпляра в той же сети, что и ваши узлы кластера GKE, поскольку вы используете RF C -1918 IP.

A nodeport может использовать (на данный момент) только диапазон от 30000 до 32767.

Вы можете указать свое собственное значение nodePort в диапазоне 30000--32767. Однако лучше не указывать это поле и позволить Kubernetes выделить для вас nodePort. Это позволяет избежать коллизий между Сервисами.

Итак, URL, который вы используете:

http://10.0.20.20/myendpoint

По умолчанию используется порт 80 / tcp, а не один из упомянутых ранее диапазонов nodePort (от 30000 до 32767) и, следовательно, сбой.

Если вы хотите использовать только внутренний проход из других экземпляров на тот же VP C и регион, используйте тип сервиса loadbalancer , если вам нужен промежуточный сервис, который обрабатывает HTTPS для вас вместо вашего бэкэнда, используйте внутренний вход , но оставайтесь в имейте в виду, что это все еще на стадии бета-тестирования, и вам нужно будет предоставить свои собственные SSL-сертификаты , так как это сейчас несовместимо с сертификатами Google Managed.

В качестве напоминания, если вы используете стабильный кластер версий GKE, внутренние типы служб loadbalancer считаются региональными ресурсами, то есть вы можете использовать их только в том же su bnet, который вы создаете, за некоторыми исключениями, такими как VPN и / или int При подключении к той же области VP C и su bnet это поведение будет необязательным, начиная с версии 1.16 и выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...