Cloud Foundry Конфигурации HAProxy по умолчанию
Я наткнулся на следующее утверждение в курсе LinuxFoundationX (LFS132x) Introduction to Cloud Foundry и Cloud Native Software Architecture.
Среды подготовки, тестирования и разработки не используют аппаратное устройство (для балансировки нагрузки). Вместо этого они будут использовать программный инструмент, известный как HAProxy, для моделирования возможностей программного обеспечения, предоставляемого аппаратным устройством. Независимо от среды, балансировщик нагрузки является точкой входа в сеть Cloud Foundry.
Однако я не нашел подробностей относительно настроек HAProxy в контексте Cloud Foundry. У меня есть следующие вопросы
HAProxy поставляется с Cloud Foundry. Основываясь на приведенном выше тексте, похоже, что каждое приложение для облачных вычислений, которое я предлагаю, стоит за HAProxy. Я правильно понимаю?
Если мне нужно проверить наличие HAProxy в контексте приложения типа HelloWorld, которое я развернул на CF, где я могу их найти?
Я использую SAP Cloud Platform в качестве поставщика CF.
Любой указатель был бы очень полезен.
С уважением, Атану
1 ответ
Существует ряд зависимостей, которые могут повлиять на то, что развертывается и как оно развертывается, поэтому я не могу полностью ответить на ваш вопрос. Я надеюсь, что это поможет.
Однако я не нашел подробностей относительно настроек HAProxy в контексте Cloud Foundry.
Я подозреваю, что найденное вами утверждение, вероятно, относится к OSS-методу развертывания Cloud Foundry, называемому cf-deployment. Вы можете настроить этот метод развертывания для использования ряда различных балансировщиков нагрузки и, как правило, использовать балансировщик нагрузки, специфичный для IaaS, или балансировщик нагрузки, такой как F5. Многие люди используют это во всех средах. Использование HAproxy также является жизнеспособной альтернативой, и вы можете настроить cf-deployment для использования HAproxy, если это имеет смысл в вашей ситуации.
Конфигурация HAProxy основана на выпуске HAProxy Bosh . Вы можете узнать больше о том, как HAproxy развертывается в этом выпуске.
HAProxy поставляется с Cloud Foundry. Судя по приведенному выше тексту, похоже, что каждое приложение для облачных вычислений, которое я публикую, стоит за HAProxy. Я правильно понимаю?
Да. Путь HTTP / HTTPS-трафика выглядит так:
Browser -> HAproxy -> Gorouter -> Your Apps
Трафик к вашим приложениям всегда будет проходить через один из ваших экземпляров балансировщика нагрузки и один из ваших экземпляров Gorouter (обычно их несколько).
Если мне нужно проверить наличие HAProxy в контексте приложения типа HelloWorld, которое я развернул на CF, где я могу их найти?
Я не знаю, есть ли способ, которым вы, как разработчик приложения, можете определить, какой тип балансировщика нагрузки используется, если только этот балансировщик нагрузки не оставляет подпись, возможно, в заголовке (что обычно не делается по соображениям безопасности) .
Тем не менее, с точки зрения разработчика приложения вам не обязательно знать, что используется HAproxy. В его конфигурации нет ничего, что действительно применимо к приложению.
Что вам действительно нужно иметь в виду, так это то, что ваше приложение находится за обратным прокси-сервером, и поэтому вам необходимо проверить
x-forwarded-for
и
x-forwarded-proto
заголовки, чтобы правильно получить удаленный клиент, и если удаленный клиент использовал TLS. Многие веб-фреймворки имеют настройки конфигурации для поддержки этого режима работы, проверьте документацию для своей платформы.
Я использую SAP Cloud Platform в качестве поставщика CF.
Если у вас есть вопросы о конкретной конфигурации в вашей среде, вам нужно будет поговорить с группой эксплуатации, управляющей вашей средой Cloud Foundry. Они будут точно знать, какие подсистемы балансировки нагрузки используются и как они настроены.