首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >简单Kubernetes pod中的java.net.SocketException

简单Kubernetes pod中的java.net.SocketException
EN

Stack Overflow用户
提问于 2021-09-29 09:46:30
回答 1查看 142关注 0票数 1

TL;DR

java.net.SocketException:在可以卷曲到互联网的简单Kubernetes pod中,网络不可达(连接失败)。

简短描述

我在Kubernetes中设置了一个简单的Job对象,它会产生一个简单的pod,使用Slack-Api通过slack轮询会话历史记录。

在本地或dockerized环境中运行此应用程序的效果非常好。但是当尝试在Kubernetes中执行它时,我得到一个

代码语言:javascript
运行
复制
java.net.SocketException: Network is unreachable (connect failed)
    at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
    at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
    at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.base/java.net.Socket.connect(Socket.java:609)
    at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:120)

Kubernetes配置

代码语言:javascript
运行
复制
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: my-app-job
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
            - name: name
              image: myimage
              imagePullPolicy: Always
              ports:
                - containerPort: 443
                  protocol: TCP
                - containerPort: 80
                  protocol: TCP
              env:
                - name: http_proxy
                  value: myproxy
                - name: https_proxy
                  value: myproxy
                - name: no_proxy
                  value: myproxy
          restartPolicy: OnFailure

尝试调试正在发生的事情时,我注意到我可以从我的pod中卷曲一些东西(这样就可以访问公共互联网),但当我尝试ping时,我得到了Socket:操作不允许。

例如:

代码语言:javascript
运行
复制
bash-4.2$ ping www.google.com
ping: socket: Operation not permitted
bash-4.2$ curl -I www.google.com
HTTP/1.1 200 OK
content-type: text/html; charset=ISO-8859-1
p3p: CP="This is not a P3P policy! See g.co/p3phelp for more info."
date: Wed, 29 Sep 2021 09:18:36 GMT
server: gws
x-xss-protection: 0
x-frame-options: SAMEORIGIN
expires: Wed, 29 Sep 2021 09:18:36 GMT
cache-control: private
set-cookie: XXXXXXXXXXX
expires=Thu, 31-Mar-2022 09:18:36 GMT; path=/; domain=.google.com; HttpOnly
x-cache: MISS from XXXXXXXXXXX
x-cache-lookup: MISS fXXXXXXXXX

bash-4.2$ command terminated with exit code 137

我相信我遗漏了一些配置。我尝试使用NodePort服务打开端口,但没有成功。有什么办法可以调试这个吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-29 09:49:17

Java不会从环境中继承代理设置。

您需要使用Java系统属性指定代理

代码语言:javascript
运行
复制
-Dhttp.proxyHost=locahost -Dhttp.proxyPort=9900
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69374009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档