使用Kubernetes插件:https://wiki.jenkins.io/display/JENKINS/Kubernetes+Plugin
我读过的大多数示例都描述了在同一环境/机器中通过Kubernetes安装部署Jenkins master。(即不在Jenkins master运行的同一台机器上)。我在做了一些端口转发后成功连接到VM,按照blog中所述设置证书并配置Kubernetes云。此外,如果我尝试部署默认的JNLP容器,则会部署该从容器,并且我的作业将在其中成功运行。
所以现在我想在一个单独的pod中部署2个自定义容器,每个容器都运行自己的应用程序(这是使用Flask的基本Web服务),它将从前端容器上的端口5001发送HTTP post到端口5002后端容器。我主要是在Jenkins全局配置的Web UI中尝试设置这个,我还没有尝试在Jenkinsfile中设置pod模板。
一个小背景是,我希望能够在每次触发新作业时部署一个单独的隔离测试环境。我希望让Kubernetes部署一个单独的Pod,其中包含前端和后端容器,然后对它们如何交互进行测试。我希望将这些Pod部署为Jenkins slaves将为我提供给予正确的隔离环境,以完成每个构建。
下面是我尝试的初始Kubernetes插件的截图。我是否需要暴露端口50000并在每个容器中运行JNLP进程以连接到master?
x1c 0d1x的数据
的
型
的
1条答案
按热度按时间lymgl2op1#
我发现Jenkins默认部署了一个JNLP slave来驱动Pod中的JNLP连接,所以我的Pod中将有3个容器:JNLP Slave,前端和后端。有关JNLP Image的信息可以在这里找到:https://github.com/jenkinsci/docker-jnlp-slave。这个从属容器的默认配置并不完全符合我的要求,但它确实处理了与Jenkins master的连接。所以我可能会修改它或用文档中提到的新容器覆盖它,以将我的测试分发到前端和后端容器。
在设置工作目录时也要注意。我把它指向了我的应用程序的python文件所在的位置,它们被覆盖了。我假设这是Jenkins工作区目录,会覆盖那里已经存在的任何东西。
我还删除了容器的命令,因为我的Docker镜像已经定义了一些初始命令,所以前端和后端容器不需要任何进一步的命令。
以下是工作容器配置:
100d1x
的字符串