OpenShift OKD с другими портами (Teamspeak) - PullRequest
0 голосов
/ 07 декабря 2018

Мне нужна помощь в создании Teamspeak-Pod на Openshift (OKD 3.11).Моя проблема в том, что после развертывания модуля я не знаю, как я могу предоставить порты 9887, 10011 и 30033 для внешнего доступа.

Для веб-приложений извне доступны только 8080, 8443 и 443.

Кто-нибудь знает, что я должен сделать, чтобы получить внешний доступ?Я думаю, что я должен сделать что-то с firewalld и port-forwards.Но я ничего не могу найти для этого.

Спасибо за вашу помощь ...

1 Ответ

0 голосов
/ 07 декабря 2018

По умолчанию модули могут обмениваться данными только внутри кластера, поэтому вы не сможете направлять к ним внешний трафик.

Один из способов сделать это - настроить службу как NodePort.Это сопоставит эти порты с портами в диапазоне 30000-32767 для всех узлов.Например:

apiVersion: v1
kind: Service
metadata:
  name: teamspeak
  labels:
    name: teamspeak
spec:
  type: NodePort
  ports:
  - name: 9887-tcp
    port: 9887
    nodePort: 31694
    protocol: TCP
  - name: 10011-tcp
    port: 10011
    nodePort: 30906
    protocol: TCP
  - name: 30033-tcp
    port: 30033
    nodePort: 32316
    protocol: TCP
  selector:
    name: teamspeak

Если вы запустите, oc edit service teamspeak, или как называется служба вашего приложения, и измените тип на NodePort, Openshift автоматически назначит порт в указанном выше диапазоне.

После того, как ваша служба настроена как NodePort, вам нужно будет перенаправить запросы для этих портов на новые, которые были назначены Openshift (порты диапазона 30000 - 32767), поэтому вместо запросов, идущих на 9887, они идутдо 30036, в случае нашего примера.

Ссылка: https://docs.openshift.com/container-platform/3.6/dev_guide/expose_service/expose_internal_ip_nodeport.html

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

apiVersion: v1
kind: Service
metadata:
  name: egress-2 
spec:
  ports:
  - name: db
    port: 3306
  - name: additional-port
    port: 9887
  - name: another-one
    port: 10011
  loadBalancerIP:
  type: LoadBalancer 
  selector:
    name: mysql

Ссылка: https://docs.openshift.com/container-platform/3.4/dev_guide/expose_service/expose_internal_ip_load_balancer.html

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