我在使用Ingress路由服务时获得"合作伙伴不是perforce client/server",但是我能够直接查询Kubernetes群集中的Perforce Server。
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 logs:
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 logs:
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.
同伴地址:10.4.0.218:49924
看起来像双向协议一样可疑,这意味着客户端和服务器期望彼此之间不受约束的访问,ALA(非passive Mode)FTP
http:
paths:
- path: /*
我不认为http:
stanza是一个准确的陈述,因为我怀疑超级值得认真的,因为Perforce会在客户端和服务器之间讲HTTP。关于TCP的教学,正在进行中的讨论,但是目前,我认为您已经在已经拥有NodePort
的大部分方面进入了您想要去的地方:1666
创建一个GCE TCP 加载平衡器(实际上是防火墙,可以使野生互联网远离群集),并将其1666指向群集中每个节点的端口30166。目前尚不清楚是否需要在Perforce周围发生任何事情,而是从"建立局外人和您的群集P4之间的TCP/IP连接"的角度来看,我认为这会做到