Предоставление сервиса openshift для публичного IP-адреса aws - PullRequest
0 голосов
/ 18 января 2019

Я запускаю openshift в aws

[centos@ip-10-0-0-14 ~]$ oc version
oc v3.6.1+008f2d5
kubernetes v1.6.1+5115d708d7
features: Basic-Auth GSSAPI Kerberos SPNEGO

Server https://ip-10-0-0-14.ec2.internal:8443
openshift v3.6.1+008f2d5
kubernetes v1.6.1+5115d708d7

У меня есть один мастер и два узла. Как я могу выставить сервис на публичный ip? Я могу получить доступ к услуге внутри:

links http://blogroute-project-a.router.default.svc.cluster.local

Как мне выставить его на публичный ip? Возможно ли это сделать в веб-консоли openshfit? Я пытался следовать https://docs.openshift.com/container-platform/3.4/dev_guide/expose_service/expose_internal_ip_service.html, но не смог.

В команде:

oc patch svc blog -p '{"spec": {"externalIPs": ["what ip?"]}}'

doc сообщает о ip, видимом в ifconfig (но это не публичный ip). Какой IP-адрес следует использовать, публичный IP-адрес AWS или частный IP-адрес (например, 10-0-0-14) из локальной сети AWS?

Должен ли я использовать ip главного узла? Или рабочего? Если у меня есть два рабочих узла, я должен написать ips их обоих?

В настоящее время существуют следующие маршруты:

[centos@ip-10-0-0-14 ~]$ oc get routes
NAME             HOST/PORT                                                   PATH      SERVICES         PORT       TERMINATION   WILDCARD
blog             blog-project-a.router.default.svc.cluster.local                       blog             8080-tcp                 None
blog-django-py   blog-django-py-project-a.router.default.svc.cluster.local             blog-django-py   8080-tcp                 None
blog2            ec2-3-90-171-97.compute-1.amazonaws.com                     /blog2    blog             8080-tcp                 None
blogroute        blogroute-project-a.router.default.svc.cluster.local                  blog             8080-tcp                 None

для следующих услуг:

[centos@ip-10-0-0-14 ~]$ oc get svc
NAME             CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
blog             172.30.111.64   3.90.171.97   8080/TCP   5d
blog-django-py   172.30.184.15   <none>        8080/TCP   5d

1 Ответ

0 голосов
/ 19 января 2019

Это можно сделать, создав балансировщик нагрузки с общедоступным IP-адресом и указав его для всех узлов на порту 80 (haproxy прослушивает порт 80). Затем вам нужно создать подстановочный DNS, что-то вроде *.apps.yourdomain.com, и указать на созданный вами балансировщик нагрузки.

После этого вы должны настроить свой домен в кластере OpenShift, см. https://docs.openshift.com/container-platform/3.6/install_config/install/advanced_install.html#configuring-cluster-variables.

Затем вы можете выставить свой сервис и создать маршрут, например blog.apps.yourdomain.com.

...