Как связать субдомен моего домена с моим субдоменом среды jelasti c? - PullRequest
0 голосов
/ 31 марта 2020

У меня есть кластер kubernetes, размещенный в среде Jelasti c env.jelastic-provider.com. В этом кластере k8s я выставляю приложение внешнего интерфейса на app.env.jelastic-provider.com. Я хотел бы использовать запись CNAME для псевдонима моего пользовательского домена www.example.com для субдомена внешнего интерфейса app.env.jelastic-provider.com. Как я могу этого достичь? Мой провайдер DNS не предлагает записи ANAME.

В настоящее время я определил псевдоним записи CNAME от www.example.com до app.env.jelastic-provider.com на моем провайдере DNS. Со стороны Jelasti c я связал www.example.com с env.jelastic-provider.com с помощью метода jelastic.environment.Binder.BindExtDomain api, который, конечно, не работает, потому что мне нужно было бы привязаться к app.env.jelastic-provider.com, который не кажется возможным.

Есть ли у меня выход, не связанный с:

  • обслуживанием моего интерфейса, например, через CDN вместо моего кластера
  • с использованием записи ANAME

?

Редактировать

Следуя советам Jelasti c и моего провайдера Jelasti c, я смог добиться хорошего прогресса. Сегодня оказывается, что подключение внешних IP-адресов к рабочим узлам кластера k8s пока не поддерживается. Он появится в более позднем выпуске jelasti c kubernetes jps . В этом манифесте мы можем видеть, что большая часть конфигурации существует, просто подключение IP к рабочим узлам не выполнено, поскольку это довольно сложно.

Поэтому, согласно этого ответа от Jelasti c, единственное решение, которое у меня осталось, - это добавить балансировщик нагрузки nginx перед моим кластером k8s и настроить днс для него. Для этого мне нужно настроить SSL для этого экземпляра nginx, так как кластер не будет работать правильно без https. Итак, первые шаги:

  1. Добавление узла nginx перед кластером
  2. Установка Давайте зашифруем аддон на узле nginx
  3. Настройка записи A на панели моего провайдера домена, где я связываю IPv4-адрес, полученный в результате предыдущей установки Давайте зашифровываем, с www.example.com
  4. Когда запись A действительна, обновите надстройку «Зашифровать», чтобы она учитывала домен.

Кроме того, я избавился от привязок моего домена, поскольку они бесполезны с записями А.

Если я все это сделаю, то я снова смогу получить доступ к работающему кластеру k8s. Панель инструментов kubernetes, а также API kubernetes работают.

Что, однако, не работает, так это доступ к поддоменам моего кластера. Как я уже говорил в моем оригинальном сообщении, мне нужен доступ к app.env.jelastic-provider.com. Вот где я сейчас застрял. Как мне теперь получить доступ к этому поддомену?

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

Итак, короче говоря. После начальной настройки, упомянутой в редактировании моего первоначального поста,

  1. Добавить nginx узел перед кластером
  2. Установить давайте зашифруем аддон на nginx узел
  3. Настройте запись A на панели моего провайдера домена, где я связываю IPv4-адрес, полученный в результате предыдущей установки давайте зашифрован, с www.example.com
  4. Когда запись A действительна, обновите зашифруйте аддон, чтобы он учитывал домен.

адрес https://www.example.com снова приводит к моему кластеру с работающей панелью управления k8s и API. Затем

  1. в моем провайдере домена я добавил еще одну запись A для app.env.jelastic-provider.com, указывающую на IPv4 балансировщика нагрузки nginx с именем app
  2. В конфигурации давайте зашифруем балансировщик нагрузки nginx, я добавил app.example.com внешний домен
  3. в файл nginx-jelastic.conf, я добавил
server {
    listen *:80;
    listen [::]:80;
    server_name  app.example.com;

    location / {
            proxy_pass http://app.env.jelastic-provider.com;
    }
}
в ssl.conf, я добавил
server {
  listen 443 ssl;
  server_name app.example.com;
  ssl_certificate      /var/lib/jelastic/SSL/jelastic.chain;
  ssl_certificate_key  /var/lib/jelastic/SSL/jelastic.key;
  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_ciphers HIGH:!aNULL:!MD5;

  location / {
    proxy_pass http://app.env.jelastic-provider.com;
  }
}

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

РЕДАКТИРОВАТЬ

Я заметил, что у такого способа работы с фронтальным балансировщиком нагрузки nginx есть один недостаток. Независимо от того, какие заголовки / конфигурации вы установили в балансировщике нагрузки, они будут каким-то образом переопределены собственным входным контроллером кластера. Если вы go пошли по этому пути, убедитесь, что оба конфига остаются согласованными ...

0 голосов
/ 02 апреля 2020

Использование CNAME вместе с Publi c IP - единственный выход, который вы ищете.

Пользовательское доменное имя

Publi c IP

...