当使用ingress路由服务时,我得到“伙伴不是Perforce客户端/服务器”,但我能够直接查询Kubernetes集群中的perforce服务器。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-notls
namespace: default
annotations:
kubernetes.io/ingress.class: "gce"
spec:
rules:
- host: perforce.domain.com
http:
paths:
- path: /*
backend:
serviceName: p4-server
servicePort: 80
p4服务
apiVersion: v1
kind: Service
metadata:
name: p4-server
spec:
type: NodePort
ports:
- port: 80
targetPort: 1666
nodePort: 30166
name: p4-server
selector:
run: p4-server
如果我在群集中:
$ p4 -p p4-server:80 info
User name: root
Client name: platform-3101934619-wtxs5
Client host: platform-3101934619-wtxs5
Client unknown.
Current directory: /
Peer address: 10.4.0.218:49924
Client address: 10.4.0.218
Server address: p4-server-1400441787-fcmd9:1666
Server root: /codelingo
Server date: 2017/10/04 02:19:17 +0000 UTC
Server uptime: 380:53:52
Server version: P4D/LINUX26X86_64/2017.1/1511680 (2017/05/05)
Server license: none
Case Handling: sensitive
p4 log:
Perforce server info:
2017/10/04 02:19:17 pid 23038 root@platform-3101934619-wtxs5 10.4.0.218 [p4/2017.1/LINUX26X86_64/1511680] 'user-info'
通过入口尝试失败:
$ p4 -p perforce.domain.com:80 info
(hangs)
p4 log:
Perforce server error:
Date 2017/10/04 02:18:30:
Pid 23012
Connection from 10.4.0.1:38622 broken.
RpcTransport: partner is not a Perforce client/server.
RpcTransport: partner is not a Perforce client/server.
RpcTransport: partner is not a Perforce client/server.
答案 0 :(得分:1)
同行地址:10.4.0.218:49924
看起来像一个双向协议,意味着客户端和服务器期望彼此无拘束地访问,ala(非被动模式)ftp
http:
paths:
- path: /*
我不相信http:
节是一个准确的陈述,因为我怀疑超级,超级认真,Perforce在客户端和服务器之间说http。目前正在围绕关于TCP的Ingress教学进行讨论,但目前我认为你已经通过已经NodePort
获得了大部分内容:1666
创建一个GCE tcp 负载均衡器(实际上只是一个防火墙,可以使远程Internet远离您的群集)并将其1666指向群集中每个节点上的端口30166。目前还不清楚是否需要在Perforce周围发生任何事情,但是从“建立外部人与你的集群内P4之间的tcp / ip连接”这一观点来看,我认为会做到这一点