我需要帮助在 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