gpt4 book ai didi

jenkins - 如何在 jenkinsci/kubernetes-plugin 中使用 yaml 定义 pod

转载 作者:行者123 更新时间:2023-12-02 17:31:43 25 4
gpt4 key购买 nike

我正在使用这个插件在 Kubernetes 集群 jenkinsci/kubernetes-plugin 中运行动态代理,到目前为止一切都很顺利,除了当我尝试使用可用于以 yaml 格式定义从属 Pod 的功能时。 enter image description here

不幸的是,当我尝试使用此功能时,事情变得很糟糕。我更改了 Jenkins 管道脚本:

def label = "kubernetes"
podTemplate(label: label,
containers: [containerTemplate(name: 'jnlp', image: 'artifactory.baorg.com:5001/sum/coreimage:1', ttyEnabled: true, label: label)],
imagePullSecrets: [ 'ad-artifactory-cred' ],
) {
node(label) {
stage('Core') {
container(name: 'jnlp') {
stage('building program') {
sh "echo hello world"
}
}
}
}
}

对此:

def label = "kubernetes"
podTemplate(label: label, yaml: """
apiVersion: v1
kind: Pod
metadata:
labels:
label: label
spec:
containers:
- name: jenkins-slave
image: artifactory.baorg.com:5001/sum/coreimage:1
tty: true
"""
) {
node(label) {
stage('Core') {
container(name: 'jnlp') {
stage('building program') {
sh "echo hello world"
}
}
}
}
}

当管道脚本以前面的方式编写时,一切都按预期工作。从属容器已创建并且作业运行。不幸的是,当我采用这些设置并尝试将它们编码为 YAML 格式时,似乎配置甚至没有被读取或执行其他操作。当它工作时,如果集群中尚不存在图像,则将拉取图像并且作业运行良好: enter image description here

但是当我更改配置以便在 YAML 中完成时,该作业尝试拉取名为“jenkins/jnlp-slave:alpine”的镜像,而不是我指定的镜像,并且由于我的集群无权访问而超时到互联网(index.docker...)。它拉取此图像的原因是由于插件中的错误,当从属名称未设置为“jnlp”时会发生该错误(无论如何,这与我的问题无关)。 enter image description here

要进行的重要观察是,由于某种原因,YAML 信息没有被接受或认可,我不确定为什么。是因为某些格式错误吗?或者这是这个插件的一些已知问题(我发现很难相信)。我已经检查过代码中是否有任何额外的选项卡,但我没有。

最佳答案

基于快速浏览您的管道 DSL 和 YAML 规范。以下代码片段是 DSL 的直接翻译的样子(未经测试)。

apiVersion: v1
kind: Pod
metadata:
labels:
label: label
spec:
containers:
- name: jnlp
image: artifactory.baorg.com:5001/sum/coreimage:1
tty: true
imagePullSecrets:
- name: ad-artifactory-cred

在您的原始配置中,您指定不使用默认的“jnlp”容器,而是使用您指定的容器。在您的 YAML 版本中,您使用了名称“jenkins-slave”,从而向插件表明您希望默认 jnlp 容器 (jenkins/jnlp-slave:alpine) 在 pod 中启动使用您的“jenkins-slave”容器。

至于拉取失败的原因,这可能是事件中指出的网络配置问题(防火墙或代理)。如果您有权访问该节点,请尝试手动执行 docker pull jenkins/jnlp-slave:aline 进行调试。

关于jenkins - 如何在 jenkinsci/kubernetes-plugin 中使用 yaml 定义 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49641687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com