Kubernetes Jenkins Pod模板在错误的命名空间中创建Pod

时间:2019-04-05 16:27:27

标签: jenkins kubernetes kubernetes-jenkins-plugin

我们有一个詹金斯主从架构,并使用了Kubernetes詹金斯插件。 podTemplate如下图

podTemplate(label: 'builder-pod', cloud: 'kubernetes', containers: [
        containerTemplate(
                name: 'jnlp',
                image: "${artifact_repo}/jenkins-slave",
                ttyEnabled: true,
                privileged: false,
                alwaysPullImage: false,
                workingDir: '/var/jenkins_home',
                resourceRequestCpu: '1000m',
                resourceRequestMemory: '1Gi',
                resourceLimitMemory: '1.1Gi',
        )
], volumes: [hostPathVolume(mountPath: '/var/run', hostPath: '/var/run')], namespace: 'jenkins') { //podtemplate
    node('builder-pod') {
        container('jnlp') {


无论出于何种原因,都在default命名空间而不是jenkins命名空间中创建builder-pod

有什么主意吗? 提前致谢。

3 个答案:

答案 0 :(得分:0)

通过以下方式检查名称:

kubectl config get-contexts

然后在部署pod之前更改上下文名称空间

kubectl config <NAME> set-context --namespace=jenkins

答案 1 :(得分:0)

您始终可以通过在容器定义中包含名称空间来强制命名空间:

containerTemplate(
                name: 'jnlp',
                namespace: 'jenkins',
                image: "${artifact_repo}/jenkins-slave",
                ttyEnabled: true,
                privileged: false,
                alwaysPullImage: false,
                workingDir: '/var/jenkins_home',
                resourceRequestCpu: '1000m',
                resourceRequestMemory: '1Gi',
                resourceLimitMemory: '1.1Gi',
        )

关于为什么它没有被加载到正确的命名空间中,您是否在任何地方都有默认的kubernetes插件配置设置?通用名称空间目标和单个容器模板名称空间目标都有设置​​。如果没有,则上述设置名称空间值的解决方案可能是唯一的方法

答案 2 :(得分:0)

您需要在Jenkins管理界面上检查Kubernetes插件配置,才能从UI中覆盖一些参数。