Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Kubernetes中运行容器而不创建部署或作业?_Kubernetes - Fatal编程技术网

如何在Kubernetes中运行容器而不创建部署或作业?

如何在Kubernetes中运行容器而不创建部署或作业?,kubernetes,Kubernetes,我试图在Kubernetes中运行一个交互式Pod(容器),它不创建作业或部署,并在完成后删除自身 该容器的目的是为我们的开发人员提供一种访问数据库的简单方法,该数据库没有公共IP地址 目前,我们正在使用以下命令: kubectl run -i --tty proxy-pgclient --image=private-registry.com/pgclient --restart=Never --env="PGPASSWORD=foobar" -- psql -h dbhost.local -p

我试图在Kubernetes中运行一个交互式Pod(容器),它不创建作业或部署,并在完成后删除自身

该容器的目的是为我们的开发人员提供一种访问数据库的简单方法,该数据库没有公共IP地址

目前,我们正在使用以下命令:

kubectl run -i --tty proxy-pgclient --image=private-registry.com/pgclient --restart=Never --env="PGPASSWORD=foobar" -- psql -h dbhost.local -p 5432 -U pg_admin -W postgres
在您第一次运行它时,它会起作用。但是,在退出会话后,如果您尝试再次运行上述操作以再次连接到数据库,我们会得到:

Error from server: jobs.extensions "proxy-pgclient" already exists
使用以下命令强制开发人员删除作业:

kubectl delete job proxy-pgclient
然后才能运行命令并再次连接


有没有办法在Kubernetes中启动一个交互式容器(Pod),而不创建作业或部署对象,并在交互式会话关闭时删除该容器?

没有一个简短的
kubectl
命令可以完全满足您的要求。相反,您可以使用pod描述创建一个yaml/json文件,并运行
kubectl create-f pod.yaml
。您的pod可以设置为永不重新启动,因此它将在退出后终止

将“-rm”标志添加到原始命令会导致作业(和Pod)在交互会话完成时被删除,这正是我想要的。然后,该命令变为:

kubectl run -i --tty --rm proxy-pgclient --image=private-registry.com/pgclient --restart=Never --env="PGPASSWORD=foobar" -- psql -h dbhost.local -p 5432 -U pg_admin -W postgres

仅供参考,我也看到了这个问题: