我正试图在集群中设置一个简单的敲门服务器,目前它在内部工作,但我无法让它从远程连接进行连接。作为参考,这是我试图用于测试目的的服务器。https://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html
目前我正在使用NGINX入口控制器。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
knock-server ClusterIP 10.104.42.238 <none> 9000/TCP 25m
testing@host:~$ java KnockKnockClient 10.104.42.238 9000
Server: Knock! Knock!
我有其他Ingress的完美工作,但这些是用于网站相关的部署,而不是像这样的内部服务器。我试过两种不同的Ingress,但都不管用。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: knockknock-ingress
spec:
rules:
- host: domain.com
http:
paths:
- backend:
serviceName: knock-server
servicePort: 9000
和
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: knock-ingress
spec:
backend:
serviceName: knock-server
servicePort: 9000
我不确定我在这件事上做错了什么,我们非常感谢您的帮助。
您可以使用ingress控制器来公开tcp服务。
- 更改入口控制器以包含以下参数:
--tcp-services-configmap tcp-configmap-example
ConfigMap的名称,包含要公开的TCP服务的定义。映射中的键指示要使用的外部端口。该值是对"namespace/name:port"形式的服务的引用,其中"port"可以是端口号或名称。TCP端口80和443由控制器保留用于服务HTTP流量。
- 为tcp服务创建配置映射:
apiVersion: v1 kind: ConfigMap metadata: name: tcp-configmap-example data: 9000: "default/knock-server:9000"