暴露tcp端口

来源:11-1 ingress --- 四层代理、session保持、定制配置、流量控制(上)

Elann

2019-12-04

老师你好,

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

我目前部署在一个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
写回答

1回答

刘果国

2019-12-05

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

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

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

0
4
刘果国
回复
Elann
这里应该不能配置相同的端口,这里配置一个,后端指向一个svc,给你的这几个deployment手动打上一个相同的标签,在建一个svc选中它们
2019-12-07
共4条回复

Kubernetes生产落地全程实践

一个互联网公司落地Kubernetes全过程点点滴滴

2293 学习 · 2216 问题

查看课程