我正在尝试在群集中设置一个简单的敲门服务器,目前它在内部运行,但无法从远程连接进行连接。作为参考,这是我正在尝试仅用于测试目的的服务器。 https://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html
当前我正在使用NGINX Ingress Controller。
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可以很好地工作,但是它们是用于网站相关的部署,而不是用于这样的内部服务器。我尝试了2种不同的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
我不确定我在这方面做错了什么,我们将提供所有帮助。
答案 0 :(得分:1)
您可以使用入口控制器公开tcp服务。
--tcp-services-configmap tcp-configmap-example
包含要公开的TCP服务的定义的ConfigMap的名称。映射中的键指示要使用的外部端口。该值是对服务的引用,格式为“名称空间/名称:端口”,其中“端口”可以是端口号或名称。控制器保留TCP端口80和443用于服务HTTP流量。
apiVersion: v1 kind: ConfigMap metadata: name: tcp-configmap-example data: 9000: "default/knock-server:9000"