kubernetes 如何启动Pod并为其输入流提供数据

ybzsozfc  于 2022-12-03  发布在  Kubernetes
关注(0)|答案(2)|浏览(122)

我是Kubernetes的新手。我想知道如何在Java(或Scala)中以编程方式启动容器,并向进程的输入流提供一些二进制数据。可能我需要一个作业。我找到了如何启动作业,但无法控制其输入流。
我可以使用任何方便的Kubernetes客户端库。
我需要它启动一个kaniko容器,并将动态生成的.tar.gz文件(通过--context tar://stdin选项)提供给它的输入流。
我可以在现有的kaniko容器上执行exec,但不知道为此目的适当地启动容器,因为容器不包括任何shell。

kpbwa7wx

kpbwa7wx1#

您可以使用kubectl run创建一个pod,并使用选项-i连接其stdin。当工作完成时,您的容器应该正常终止。
示例:

echo "echo foo" | kubectl run -i busybox --image=busybox --restart=Never

参考编号:
https://jamesdefabia.github.io/docs/user-guide/kubectl/kubectl_run/

hl0ma9xz

hl0ma9xz2#

使用fabric8 Java客户端库以编程方式,可以通过以下方式完成:
https://github.com/fabric8io/kubernetes-client/blob/master/doc/CHEATSHEET.md#running-a-pod

try (KubernetesClient client = new KubernetesClientBuilder().build()) {
    client.run().inNamespace("default")
            .withName("kaniko")
            .withImage("gcr.io/kaniko-project/executor:latest")
            .done();
}

设置env.变量或添加参数非常方便。
现在我得研究一下,怎么样才能养活这个标准的输入。

相关问题