请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

暴露tcp端口

老师你好,

我是选择自己不知道的部分进行学习,我现在学习到这里遇到一些问题:

我目前部署在一个client0 节点上,但是这个节点没有公网ip。仅仅只有master0 有公网ip。如果起作用了,可以通过公网ip方式通过tcp方式访问吗?

不放在master0 不是因为node标记的问题,而是必须降低这个流量入口的负载。

master0   Ready    master   
master1   Ready    master   
master2   Ready    master   
client0   Ready    node     

另外一个问题:
很多svc(有自己独立的业务逻辑)都需要同一个tcp端口,这个可以解决吗?

  apiVersion: v1
  kind: ConfigMap
  metadata:
    labels:
      app.kubernetes.io/name: ingress-nginx
      app.kubernetes.io/part-of: ingress-nginx
    name: tcp-services
    namespace: ingress-nginx
  data:
    "30015": default/elannv1:01
    "30015": default/elannv2:01
    "30015": default/elannv3:01

正在回答 回答被采纳积分+3

1回答

刘果国 2019-12-05 08:25:11

首先没有公网ip的服务器,如果想在公网访问上面的端口是无法直接访问的,必须加一层代理,把域名或端口指向内网服务。

第二个,通过ingress暴露的端口是不能重复的,你想想,你的三个服务各有各的逻辑,你通过同一个端口访问你希望访问到谁?访问谁都不对!这需求本身的逻辑就有问题的呀。

如果说是这个服务本身启动的端口是固定的同一个那没问题,那都是容器端口,可以通过端口映射成不同的端口对外提供服务。

0 回复 有任何疑惑可以回复我~
  • 提问者 Elann #1
    我来具体说明下这个情况。
    我需要通过域名+相同端口来访问不同用户的服务。
    但是这个服务是通过tcp协议通信的,情况就是这样。
    但是ingress-nginx配置是走http协议,所以就卡到这里了
    回复 有任何疑惑可以回复我~ 2019-12-05 09:38:20
  • 刘果国 回复 提问者 Elann #2
    恩 那我理解就是可以轮询访问不同的后端服务,他们都有相同的接口。这个前提下,可以通过ingress-nginx的tcp服务发现实现,我记得课程应该有讲到哦,也可以度娘找找
    回复 有任何疑惑可以回复我~ 2019-12-06 08:14:43
  • 提问者 Elann 回复 刘果国 #3
    你是指下面的方式吗(ingress-nginx的tcp服务发现实现+轮询访问不同的后端服务)
    
      apiVersion: v1
      kind: ConfigMap
      metadata:
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
        name: tcp-services
        namespace: ingress-nginx
      data:
        "30015": default/elannv1:01
        "30015": default/elannv2:01
        "30015": default/elannv3:01
    回复 有任何疑惑可以回复我~ 2019-12-06 09:58:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信