从java应用程序执行命令到kubernetes pod

从java应用程序执行命令到kubernetes pod,java,kubernetes,Java,Kubernetes,我一直在搜索web以使用java应用程序在Kubernetes吊舱中执行命令。 结果很模糊,,因此,我想知道一个pod中运行的java应用程序是否有办法在另一个pod上执行命令?我想您可以使用服务或kube dns与pod进行通信,该服务或kube dns将svcName.service.ns.cluster.local解析为ClusterIP,并使用另一个websocket连接到该pod以侦听您的命令和命令等等 无法帮助您使用java套接字或详细的代码结构,但我确信这会有所帮助 Edit1:服

我一直在搜索web以使用java应用程序在Kubernetes吊舱中执行命令。
结果很模糊,,因此,我想知道一个pod中运行的java应用程序是否有办法在另一个pod上执行命令?

我想您可以使用服务或kube dns与pod进行通信,该服务或kube dns将
svcName.service.ns.cluster.local
解析为ClusterIP,并使用另一个websocket连接到该pod以侦听您的命令和命令等等

无法帮助您使用java套接字或详细的代码结构,但我确信这会有所帮助

Edit1:服务yaml文件的示例

podA服务:

apiVersion: v1
kind: Service
metadata:
  name: svc-nodeport-httpd
spec:
  type: NodePort
  ports:
  - port: 3050
    targetPort: 80
    nodePort: 31000
  selector:
    app: apache_webserver
创建pod端口到节点端口连接或

集群。这是建议

apiVersion: v1
kind: Service
metadata:
  name: "myapp-service"
  namespace: "namespace"
spec:
  ports:
  - name: appPort
    port: 8065
    protocol: TCP
    targetPort: http
  selector:
    app: "myapp"
  type: ClusterIP

它创建了一个可用于内部通信的服务。

我想您可以使用服务或kube dns与pod通信,该服务或kube dns将
svcName.service.ns.cluster.local
解析为ClusterIP,并使用另一个websocket连接到该pod,以侦听您的命令等

无法帮助您使用java套接字或详细的代码结构,但我确信这会有所帮助

Edit1:服务yaml文件的示例

podA服务:

apiVersion: v1
kind: Service
metadata:
  name: svc-nodeport-httpd
spec:
  type: NodePort
  ports:
  - port: 3050
    targetPort: 80
    nodePort: 31000
  selector:
    app: apache_webserver
创建pod端口到节点端口连接或

集群。这是建议

apiVersion: v1
kind: Service
metadata:
  name: "myapp-service"
  namespace: "namespace"
spec:
  ports:
  - name: appPort
    port: 8065
    protocol: TCP
    targetPort: http
  selector:
    app: "myapp"
  type: ClusterIP
它创建了一个可用于内部通信的服务

[是否]在一个pod中运行的java应用程序可以在另一个pod上执行命令

不需要。您需要创建第二个应用程序的网络接口,并对其进行gRPC或HTTP调用,或者将两个程序构建到同一个映像中,以便可以作为普通子进程启动第二个程序

一般来说,容器也是如此。尝试在非Kubernetes Docker容器中运行这两个部分(推荐用于实验和开发)或在同一Kubernetes pod中运行两个容器(不推荐)时会遇到相同的问题

(有一个“但是”涉及使用Kubernetes API,但这是一个相当复杂的设置,它涉及应用程序中Kubernetes特定的代码,并且需要在Kubernetes部署中设置服务帐户和权限。我会避免这种情况,尤其是对于应用程序的核心数据流。)

[是否]在一个pod中运行的java应用程序可以在另一个pod上执行命令

不需要。您需要创建第二个应用程序的网络接口,并对其进行gRPC或HTTP调用,或者将两个程序构建到同一个映像中,以便可以作为普通子进程启动第二个程序

一般来说,容器也是如此。尝试在非Kubernetes Docker容器中运行这两个部分(推荐用于实验和开发)或在同一Kubernetes pod中运行两个容器(不推荐)时会遇到相同的问题


(有一个“但是”涉及使用Kubernetes API,但这是一个相当复杂的设置,它涉及应用程序中Kubernetes特定的代码,并且需要在Kubernetes部署中设置服务帐户和权限。我会避免这种情况,尤其是对于应用程序的核心数据流。)

这是否会像……创建一个服务,在pod中有命令列表,我想在其中执行命令并从运行我的应用程序的pod调用该服务?我的意思是用于pod通信的kubernetes服务。从java创建一个套接字以从
pod a
上的端口X进行侦听,从kubernetes创建一个服务以使用端口X轻松访问您的
pod
。从您的发送方,java通过连接到您创建的
podAservice
将信息从
pod B
发送到
pod a
。为您添加了两个服务文件示例。希望它能有所帮助。这会像……创建一个服务,在pod中有命令列表,我想在其中执行命令并从运行我的应用程序的pod调用该服务吗?我的意思是用于pod通信的kubernetes服务。从java创建一个套接字以从
pod a
上的端口X进行侦听,从kubernetes创建一个服务以使用端口X轻松访问您的
pod
。从您的发送方,java通过连接到您创建的
podAservice
将信息从
pod B
发送到
pod a
。为您添加了两个服务文件示例。希望能有帮助。