0

我需要帮助在 Openshift (OKD 3.11) 上创建 Teamspeak-Pod。我的问题是在部署 pod 后,我不知道如何将端口 9887、10011 和 30033 提供给外部访问。

从外部的 Web 应用程序只能访问 8080、8443 和 443。

有谁知道我应该怎么做才能提供外部访问权限?我想我必须对 firewalld 和端口转发做一些事情。但我找不到任何东西。

谢谢,为您的帮助...

4

1 回答 1

0

默认情况下,Pod 只能在集群内进行通信,因此您将无法将外部流量路由到它们。

一种方法是将服务配置为 NodePort。这会将这些端口映射到所有节点的 30000-32767 范围内的端口。例如:

api版本:v1
种类:服务
元数据:
  名称:teampeak
  标签:
    名称:teampeak
规格:
  类型:节点端口
  端口:
  - 名称:9887-tcp
    端口:9887
    节点端口:31694
    协议:TCP
  - 名称:10011-tcp
    端口:10011
    节点端口:30906
    协议:TCP
  - 名称:30033-tcp
    端口:30033
    节点端口:32316
    协议:TCP
  选择器:
    名称:teampeak

如果您运行 ,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

或者,您可以将服务定义为 type LoadBalancer,这不仅会将您的 pod 暴露给外部流量,还会根据您的配置在 pod 之间分发请求。例如,

api版本:v1
种类:服务
元数据:
  名称:出口-2
规格:
  端口:
  - 名称:分贝
    端口:3306
  - 名称:附加端口
    端口:9887
  - 名称:另一个
    端口:10011
  负载均衡器IP:
  类型:负载均衡器
  选择器:
    名称:mysql

参考:https ://docs.openshift.com/container-platform/3.4/dev_guide/expose_service/expose_internal_ip_load_balancer.html

于 2018-12-07T15:02:25.860 回答