Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.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
如何将自定义Docker容器部署为远程Kubernetes安装中的Jenkins从属容器?_Docker_Jenkins_Flask_Kubernetes_Jenkins Slave - Fatal编程技术网

如何将自定义Docker容器部署为远程Kubernetes安装中的Jenkins从属容器?

如何将自定义Docker容器部署为远程Kubernetes安装中的Jenkins从属容器?,docker,jenkins,flask,kubernetes,jenkins-slave,Docker,Jenkins,Flask,Kubernetes,Jenkins Slave,利用Kubernetes插件: 我读过的大多数示例都描述了在同一环境/机器中通过Kubernetes安装部署Jenkins master。但是出于测试目的,我有一个minikube环境在一个单独的VM上运行(即,Jenkins master运行的不是同一台机器)。在执行了一些端口转发、按照本文所述设置证书并配置Kubernetes云之后,我成功地连接到VM。另外,如果我尝试部署默认的JNLP容器,那么将部署该从属容器,并且我的作业将在其中成功运行 因此,现在我想在一个pod中部署两个自定义容器,

利用Kubernetes插件:

我读过的大多数示例都描述了在同一环境/机器中通过Kubernetes安装部署Jenkins master。但是出于测试目的,我有一个minikube环境在一个单独的VM上运行(即,Jenkins master运行的不是同一台机器)。在执行了一些端口转发、按照本文所述设置证书并配置Kubernetes云之后,我成功地连接到VM。另外,如果我尝试部署默认的JNLP容器,那么将部署该从属容器,并且我的作业将在其中成功运行

因此,现在我想在一个pod中部署两个自定义容器,每个容器都运行自己的应用程序(这是使用的基本web服务),它将从前端容器上的端口5001向端口5002后端容器发送HTTP post。我主要是在Jenkins全局配置的web UI中尝试设置,我还没有尝试在Jenkins文件中设置pod模板

有一点背景是,我希望能够在每次触发新作业时部署一个独立的测试环境。我想让Kubernetes部署一个单独的Pod,其中包含前端和后端容器,然后运行关于它们如何交互的测试。我希望以詹金斯奴隶的身份部署这些吊舱可以为每个构建提供正确的隔离环境,从而实现这一目标

下面是我尝试过的Kubernetes插件初始配置的屏幕截图。我是否需要公开端口50000并在每个容器中运行JNLP进程才能连接到主机


我发现Jenkins默认部署了一个JNLP从机来驱动Pod中的JNLP连接,因此我的Pod中将有3个容器:JNLP从机、前端和后端。有关该JNLP映像的信息可在此处找到:。这个从容器的默认配置并不完全符合我的要求,但它确实处理到Jenkins主容器的连接。因此,我可能会修改它或用文档中提到的新容器覆盖它,以将我的测试分发到前端和后端容器

设置工作目录时也要小心。我把它指向了我的应用程序的python文件所在的位置,它们正在被覆盖。我假设这是Jenkins工作区目录,将覆盖那里已有的任何内容

我还删除了容器的命令,因为我的Docker映像已经定义了一些初始命令,所以前端和后端容器不需要任何进一步的操作

以下是工作容器配置:


现在,当我运行作业时,我看到从属服务器试图部署,但我看到消息:“(挂起标签“combined”的所有节点都处于脱机状态)”