我需要帮助在 Openshift (OKD 3.11) 上创建 Teamspeak-Pod。我的问题是在部署 pod 后,我不知道如何将端口 9887、10011 和 30033 提供给外部访问。
从外部的 Web 应用程序只能访问 8080、8443 和 443。
有谁知道我应该怎么做才能提供外部访问权限?我想我必须对 firewalld 和端口转发做一些事情。但我找不到任何东西。
谢谢,为您的帮助...
默认情况下,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,在我们的例子中。
或者,您可以将服务定义为 type LoadBalancer,这不仅会将您的 pod 暴露给外部流量,还会根据您的配置在 pod 之间分发请求。例如,
api版本:v1
种类:服务
元数据:
名称:出口-2
规格:
端口:
- 名称:分贝
端口:3306
- 名称:附加端口
端口:9887
- 名称:另一个
端口:10011
负载均衡器IP:
类型:负载均衡器
选择器:
名称:mysql