OpenShift::如何在自定义端口(非web/非http)上启用pod流量
我们如何在自定义端口(非web/非http)上启用pod流量OpenShift::如何在自定义端口(非web/非http)上启用pod流量,openshift,openshift-origin,openshift-client-tools,openshift-enterprise,Openshift,Openshift Origin,Openshift Client Tools,Openshift Enterprise,我们如何在自定义端口(非web/非http)上启用pod流量 例如考虑端口12121。 我试着通过这条路线暴露端口。 但无法从同一命名空间中的另一个pod访问此pod OpenShift支持此功能吗 如果有人曾经尝试过,请分享你是如何做到这一点的 谢谢。您可以使用要添加的端口自定义现有的路由器,或者使用自定义端口添加路由器。有关详细信息,请参阅 定制路由器 你有一些选择,这取决于你想要实现什么,但我不会为此使用路线 如果您不关心端口号,则可以使用节点端口服务。NodePorts是群集管理员
例如考虑端口12121。
我试着通过这条路线暴露端口。 但无法从同一命名空间中的另一个pod访问此pod OpenShift支持此功能吗 如果有人曾经尝试过,请分享你是如何做到这一点的谢谢。您可以使用要添加的端口自定义现有的
路由器
,或者使用自定义端口添加路由器
。有关详细信息,请参阅
- 定制路由器
你有一些选择,这取决于你想要实现什么,但我不会为此使用路线
- 如果您不关心端口号,则可以使用节点端口服务。NodePorts是群集管理员定义的一系列端口(默认值为30000-32767),可分配给服务,并在群集中的每个节点上公开,适用于TCP和UDP流量。本例指定要使用的节点端口,但如果您不提供,服务控制器将分配一个可用的节点端口
- 使用负载平衡器服务,该服务将允许您公开负载平衡器IP上的端口。请注意,这需要使用可使用的IP列表(这是主机上的配置)设置集群,并将IP路由到集群中的节点(这可以通过OpenShift的ipfailover automation实现)
- 不太理想的情况是,您可以使用主机端口并直接在运行pod的主机上公开端口,但这仅在您希望将流量路由到主机而不进行流量平衡时才起作用。这种方法违背了最佳实践,但可以作为最后手段使用
谢谢你的回复。我不是想更改HTTP端口,我是在请求与非WEB/非HTTP应用程序相关的查询。如果您对此场景有任何建议,请与我们分享。再次感谢你。
oc adm router --replicas=0 --ports='12121:12121,443:443'
oc set env dc/router ROUTER_SERVICE_HTTP_PORT=12121 \
ROUTER_SERVICE_HTTPS_PORT=443
oc scale dc/router --replicas=1
iptables -A INPUT -p tcp --dport 12121 -j ACCEPT
apiVersion: v1
kind: Service
metadata:
name: mysql
labels:
name: mysql
spec:
type: NodePort
ports:
- port: 3306
nodePort: 30306
name: http
selector:
name: mysql
apiVersion: v1
kind: Service
metadata:
name: egress-2
spec:
ports:
- name: db
port: 3306
loadBalancerIP:
type: LoadBalancer
selector:
name: mysql
apiVersion: v1
kind: Pod
metadata:
name: mysql
spec:
containers:
- image: mysql
name: mysql
ports:
- name: mysql
containerPort: 3306
hostPort: 3306