允许进入由Kubernetes Jenkins插件部署的Pod上运行的服务的最佳方法是什么?
我正在尝试编写一些集成测试。他们需要我正在测试的系统才能将帖子发送到URL。我正在使用Kubernetes Plugin for Jenkins来配置将运行测试的节点。
在测试期间,我想在pod内运行一个模拟http服务器,并让外部系统访问该模拟http服务器。我正在使用声明性管道。
我试图像这样在Jenkinsfile中定义服务:
pipeline {
agent {
kubernetes {
label 'mypod'
defaultContainer 'jnlp'
yaml """
apiVersion: v1
kind: Pod
metadata:
labels:
some-label: some-label-value
spec:
containers:
- name: integration-test
image: myimage:latest
command:
- cat
tty: true
---
apiVersion: v1
kind: Service
metadata:
name: webhooks-test
spec:
selector:
some-label: some-label-value
ports:
- protocol: TCP
port: 3000
targetPort: 9376
"""
}
这将部署Pod,但不会定义服务。
我什至没有尝试定义入口规则。
似乎不支持在此处定义服务-毕竟,它被称为Pod模板!还有另一种方法吗?也许应该手动应用服务和入口规则,并且选择器仅在Pod部署后才生效?我不确定多个Pod会如何工作-理想情况下应该能够一次运行多个测试。 感谢您的任何建议。
答案 0 :(得分:0)
我不太明白为什么要用这种方式创建它,但是您可以在启动测试之前创建服务,因为该服务适用于所有以该标签开头的Pod。