问题标签 [jenkins-kubernetes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
168 浏览

jenkins - 使用 ReadWriteMany 权限挂载 nfs 持久卷声明时,偶尔无法为 pod 挂载卷

我已经按照这篇文章在 GKE 上设置了 NFS 服务器,以便可以在许多 pod 上安装 ReadWriteMany pvc。

这些 pod 是 jenkins-slave 代理,可以根据需要不断创建和销毁。

关键是有时我可以看到几个 pod 将相同的 pvc 安装在 nfs 服务器上,工作正常。然而,很多时候有一堆 Pod 卡在 Pending 状态。描述他们我看到:

无法为 pod“jenkins-slave-rqsb7_mynamespace(044f1362-5925-4812-875c-723f32d5e6fc)”挂载卷:超时已过期,等待卷为 pod“mynamespace”/“jenkins-slave-rqsb7”附加或挂载。卸载卷列表=[volume-2]。未附加卷列表=[volume-0 volume-2 volume-1 工作区-volume default-token-qdlhx]

其中第 2 卷是对应于 pvc 和 NFS 支持的卷的卷。

这里可能是什么问题?

0 投票
1 回答
2047 浏览

jenkins - 詹金斯奴隶的 PersistentVolumeClaim 工作区

我正在尝试PersistentVolumeClaim使用kubernetes-plugin保留我的工作区

我已经创建PV并将PVC文件存储在本地磁盘上。该管道以前运行良好,但现在不再在本地磁盘上创建工作区。

这是我的管道。任何想法为什么不工作?

现在 Jenkins 总是像这样挂载卷:

我的问题是:如何emptyDirpersistentVolumeClaim我的工作区卷覆盖默认值?

0 投票
1 回答
265 浏览

jenkins - Jenkins kubernetes-plugin 与多个集群对话

所以我遇到并努力理解的问题是如何设置多个云/集群。与这个问题非常相似。 一个 Jenkins,两个 Kubernetes 集群

基本上我的詹金斯在集群 A 中完美运行。集群 B 是我遇到问题的地方。我在插件中将集群 b kubernetes 设置为集群 B。我可以点击登录按钮,它按预期工作。我遇到的问题是,当代理部署到集群 b 工作时,它无法再回话。这些错误似乎是因为我的詹金斯位于 https 端点后面。但是我找不到在哪里设置 ssl?即使我过去了,我也不确定如何让 jnlp 回话?那会是一个节点端口吗?我查看了 websocket,但我仍然遇到问题。我在网上找到的所有东西似乎都没有回答 https 后面的詹金斯。他们似乎都认为它是http。非常感谢任何指导。提前致谢

0 投票
1 回答
289 浏览

jenkins - 如何从詹金斯管道中的不同存储库中获取代理 pod 模板

我想在 Repo A 中保留 jenkins 管道代理(kubernetes pod)模板。jenkinsfile 在 Repo B 中。要在 Repo B 上运行阶段“ci”,我需要从 Repo A 签出代理文件夹。

当我运行 jenkins 管道作业时,它会检查 Repo B(分支名称 = 开发)。但我无法签出 Repo A (branch name = master) 来获取代理模板。这里的任何帮助都会很棒。我一直在努力解决这个问题。

0 投票
0 回答
1351 浏览

kubernetes - 错误:错误:java.lang.RuntimeException:io.kubernetes.client.openapi.ApiException:禁止

嗨,我正在尝试使用 kubernates 部署插件将 kubernates 与 jenkins 集成。我正确配置了所有细节并在 jenkins 中提到了 kubeconfig 文件,但它没有运行 yaml 文件指定命名空间,而是运行默认命名空间,并且在该默认命名空间中我没有创建部署的权限。所以我的问题可以在下面的脚本中提及命名空间。

如果我添加下面的属性 secretNamespace: 'pmicm',它也在默认命名空间中运行。

0 投票
2 回答
2481 浏览

docker - Kubernetes 集群 pod 作为 Jenkins 构建代理

我已经安装Kubernetes plugin - 1.23.3在我们的 Jenkins 中,并且能够在 kubernetes pod(Dynamic Jenkins Slave)上执行 shell 命令。这是使用默认值jnlp & jenkins/jnlp-slave:latest

假设如果我更改下面的“名称”和“Docker Image”部分以使用我们的私有注册表和图像

它不使用我们的私有 docker 镜像,甚至不在 pod-containers 上运行 shell 命令。这个想法是build + static analysis在 Kubernetes 集群 pod 上使用我们自己的 docker 镜像作为动态 Jenkins 构建代理来执行。

如何使用我们的私有 docker 注册镜像并在 Kubernetes 集群中作为 Jenkins slave 执行它们?我有下面的脚本管道代码。K8S 工作节点的第 1 阶段“SCM 代码检查”正在运行,下一个第 2 阶段构建它正在从template Kubernetes Pod Template. 但如果失败了docker: not found. 似乎试图在 pod 中提取我们的注册表图像。我们的工作节点系统的代码需要安装在动态 Jenkins 从属 pod 中并执行构建和下一个阶段。任何实现的方向都会有所帮助。

0 投票
1 回答
1437 浏览

docker - 在 Jenkins Pipeline Stage 的 docker 镜像中运行命令

我有一个简单的 Jenkins 管道,它创建一个带有 3 个容器的 pod - jnlp、dind、example-test

这看起来如下 -

还定义了几个阶段——

所以现在我的根文件夹中有这个脚本“示例”,我想运行它,但不知何故它无法找到它。

Dockerfile 看起来像这样 -

pwd 返回“/home/jenkins/agent/workspace/test-pipeline”,而不是 docker 容器路径。

输出如下 -

关于如何解决这个问题的任何想法?

0 投票
1 回答
1327 浏览

jenkins - Kubernetes jenkins 代理失败并显示 - tcpSlaveAgentListener

我在同一台服务器上运行Jenkins Master& 。K8s-MasterJenkins 通过 tomcat Apache 运行(不在 K8s 集群上)。我有另一台服务器K8s-Worker-Node,在安装的两个服务器CentOS-8操作系统上。我已经配置Jenkins Kubernetes Plugin version - 1.26.4但是在运行管道作业时我总是遇到错误,下面是 K8s 集群 Jenkins 代理 pod 日志。

以下设置配置已启用。

在此处输入图像描述

我能够成功地从我的 Jenkins 通信到 K8s 主集群(在 Jenkins Cloud 部分验证)。

即使在 K8s master 中,所有命名空间 pod 都在运行。weave-net安装了 CNI,不知道在通过 Jenkins 进行代理配置时导致问题的原因。

我的 Jenkins/K8s master & K8s-Worker-Node/etc/hosts如下。

下面是进入 K8s-Worker 节点的输出。从 K8s-worker 节点连接 jenkins-master 看起来没有问题。

看起来 Kubernetes DNS 没有解析名称。因此,任何解决此问题的指针都会有所帮助。谢谢。

0 投票
0 回答
63 浏览

maven - 为 Jenkins 项目使用 Kubernetes 插件而不是管道

我正在使用 Jenkins 的 Kubernetes 插件(https://github.com/jenkinsci/kubernetes-plugin)。

使用他们的文档,我能够创建一个Jenkins 管道来创建一个 pod,并使用 Jenkins 管道脚本在 pod 内的 maven 容器内运行一些 maven 命令。还有另一个 kubectl 容器运行一些 kubectl 命令。除了尝试之外,我还没有做任何花哨的事情。

我想创建两个Jenkins 项目(或工作)。一个用于 maven 步骤,另一个用于 kubectl 步骤。然后将这两个作业组合到一个管道中。最后,将有两个单独的作业,以及一个运行这两个作业的管道。管道相当于我在上一段中描述的。我没有看到一种方法来做 Kubernetes 的事情。具体来说,我没有看到一种方法来创建一个脚本,该脚本使用 Maven 容器创建一个 pod,并使用 Jenkins 项目在该容器中执行某些操作,这与 Jenkins 流水线不同。

  1. 是否可以通过使用 Kubernetes 插件来完成我所说的?
  2. 有一个更好的方法吗?
  3. 如果不可能,还有其他方法可以做类似的事情吗?
0 投票
1 回答
307 浏览

jenkins - Jenkins 拉插件返回 404

我正在将 Jenkins 与 kubernetes 一起使用,但我的 kubernetes pod 无法启动。我可以在日志中看到这一点:

似乎很多插件都无法获取。有人可以建议如何解决这个问题吗?