1

无法连接托管在 Openshift 集群上的 jenkins master。握手后以以下错误终止:

may 23, 2020 2:05:55 PM hudson.remoting.jnlp.Main$CuiListener error
GRAVE: Failed to connect to jenkins-jnlp-poc:50000
java.io.IOException: Failed to connect to jenkins-jnlp-poc:50000
        at org.jenkinsci.remoting.engine.JnlpAgentEndpoint.open(JnlpAgentEndpoint.java:246)
        at hudson.remoting.Engine.connectTcp(Engine.java:678)
        at hudson.remoting.Engine.innerRun(Engine.java:556)
        at hudson.remoting.Engine.run(Engine.java:488)
Caused by: java.net.ConnectException: Connection timed out: connect
        at sun.nio.ch.Net.connect0(Native Method)
        at sun.nio.ch.Net.connect(Net.java:454)
        at sun.nio.ch.Net.connect(Net.java:446)
        at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:648)
        at java.nio.channels.SocketChannel.open(SocketChannel.java:189)
        at org.jenkinsci.remoting.engine.JnlpAgentEndpoint.open(JnlpAgentEndpoint.java:204)
        ... 3 more

我添加了到 jenkins-jnlp 服务的路由,但我无法公开端口,我一直在尝试配置 nodePort,但我还无法归档它。欢迎任何帮助!谢谢。

4

1 回答 1

2

路由仅适用于 HTTP / HTTPS 流量,在这种情况下不起作用,正如您正确指出的那样,NodePorts很可能是您想要的。以下是使用端口 32000的Service类型的示例:NodePort

apiVersion: v1
kind: Service
metadata:  
  name: jenkins-jnlp-poc-service
spec:
  selector:    
    app: jenkins-jnlp-poc
  type: NodePort
  ports:  
  - name: jnlp
    port: 50000
    targetPort: 50000
    nodePort: 32000
    protocol: TCP

请注意,您可能需要更改服务的多个部分:

  • porttargetPort指定“侦听”的端口以及Service流量转发到的位置(通常是容器公开的端口)

  • ,selector哪些 Pod 是目标(您需要检查您的 Pod 使用了哪些标签并进行相应调整)

于 2020-05-23T13:09:53.407 回答