我为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
答案 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