端口转发正常,但无法从同一GKE群集中的其他POD访问端口

时间:2019-05-09 03:48:39

标签: kubernetes google-kubernetes-engine

我为MQ有状态集,为TCP暴露了两个端口1414,为HTTPS暴露了9443,并创建了类型为Loadbalancer的服务。 TCP 1414工作正常,能够使用服务名称/群集IP从同一群集中的其他POD进行telnet连接。也可以从外部GKE群集连接1414。

但是问题是无法从群集中的其他POD(服务名称/群集IP)或群集外部(外部IP)访问端口9443。当执行到POD并在本地测试时,telnet可以正常工作。telnet 127.0.01 9443

HTTPS服务是否缺少任何配置。

注意:端口转发工作正常,并且能够连接到API。 kubectl端口转发svc / mq-qmdtest 9443:9443

服务定义

apiVersion: v1
kind: Service
metadata:
  name: {{.Values.name}}
  namespace: {{.Values.namespace}}
  annotations:
    cloud.google.com/load-balancer-type: "Internal"
  labels : 
    run: {{.Values.name}}
spec:
  type: LoadBalancer
  loadBalancerIP: {{.Values.loadBalancerIP}}
  ports:
  - name: webui
    port: 9443
    protocol: TCP
  - name: mq
    port: 1414
    protocol: TCP
  selector:
    run: {{.Values.name}}

状态集–容器端口配置

    ports:
    - containerPort: 9443
      protocol: TCP
      name: webui
    - containerPort: 1414
      protocol: TCP
      name: mq

1 个答案:

答案 0 :(得分:1)

  

当对POD执行并在本地测试时,telnet可以正常工作。telnet 127.0.01 9443   ...    端口转发工作正常,并且能够连接到API。 kubectl端口转发svc / mq-qmdtest 9443:9443

几乎可以肯定是由pod只在本地主机上监听引起的; port-forward也与localhost配合使用,因此您无法从群集中的其他Pod到达它,但可以从自身访问,也可以从端口转发到达,这意味着该服务仅在监听 local 连接。

在不了解有关软件的更多信息的情况下,我无法为您提供“打开此文件,更改此值”类型的说明,但请注意“绑定主机”或任何会同时接受主机的“监听”配置和端口,在这种情况下,请将“绑定主机”设置为0.0.0.0或将“监听”配置设置为0.0.0.0:9443