问题标签 [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 投票
1 回答
395 浏览

jenkins - 如何从rancher 2.0获取kubernete的配置?

我有rancher 2.0来使用RBAC访问控制来管理kubernetes,kubeconfig我用的kubectl很简单,它将集群服务器显示给rancher。

然后在像jenkins kubernetes plugin这样的系统中,我该如何填写kubernetes的信息Name, Kubernetes URL, Kubernetes server certificate key, ...

见下文

在此处输入图像描述

0 投票
1 回答
757 浏览

jenkins - 如何在管道中使用 kubernetes-plugin 访问另一个容器的容器端口

我正在尝试从一个容器访问暴露的端口到同一节点内的另一个容器,但我不知道如何使用管道中的 kubernetes 插件来做到这一点。

在我的脚本中,我创建了两个容器并公开了数据库容器的端口,在另一个容器中,我试图访问主机的端口 1521。

0 投票
3 回答
2896 浏览

jenkins - 如何在隔离的 pod 中为声明式 jenkins 管道运行并行阶段

我正在尝试在声明性 jenkins 管道上并行运行一些端到端测试,并在不同的 kubernetes pod 上运行,但 jenkins 似乎尝试在相同的 kubernetes pod 上运行并行阶段。这会导致数据库死锁,因为两个进程都尝试插入/截断/更新/查询相同的表。有没有办法可以为每个并行阶段旋转不同的吊舱?

kubernetes 插件配置:

并行阶段:

期望:我想让詹金斯为每个平行阶段旋转两个不同的吊舱。这将允许我为每个测试使用不同的数据库。

实际结果: Jenkins 在同一个 pod 上同时运行两个阶段。

0 投票
0 回答
398 浏览

jenkins - Jenkins kubernetes-plugin 并行化声明性 Jenkinsfile

使用 kubernetes-plugin Parallelise 声明式 Jenkinsfile 当每个阶段使用相同的容器时,如何并行运行阶段?(例如:sonar_qube 分析和单元测试都在 Maven 容器上运行。

我在 Jenkinsfile 中尝试了以下内容:

一切似乎都正常,在蓝海 UI 上,我可以看到两个阶段同时正确运行。但是,当 parralell 阶段中的一个阶段完成时,另一个阶段会因“java.lang.NoClassDefFoundError”而失败,因为这些类肯定已经被使用过并且该阶段正在运行。

它几乎看起来像一个旋转的所有奴隶都使用相同的工作区目录,即:/home/jenkins/workspace/job_name/

maven 命令创建文件夹 - /home/jenkins/workspace/job_name/target/classes - 但是当您看到失败时,它会询问已使用的容器是否从类文件夹中获取了所有内容。

0 投票
1 回答
1332 浏览

jenkins-plugins - 如何在 jenkins kubernetes 插件上配置权限以访问远程 GKE 集群

我在 GCE 上设置了 Jenkins,并从那里尝试访问 GKE 上的 k8s 集群。当我尝试在插件上测试连接时,我得到了未经授权。

我启用了 GKE API 访问,在 GKE 上创建了一个服务帐户,创建了角色和角色绑定。

在 Jenkins 上安装 kubernetes 插件并通过提供 kubernetes url、证书和令牌进行配置。我仍然得到以下异常 -

预期是 - 连接到 Kubernetes 集群成功。

实际是 - 测试连接https://35.193.108.106时出错:java.security.cert.CertificateException:无法解析证书:java.io.IOException:空输入(禁用 Https)

使用(禁用 https 证书检查启用)错误测试连接https://35.193.108.106:执行失败:GET at:https ://35.193.108.106/api/v1/namespaces/default/pods 。消息:未经授权。接收状态:Status(apiVersion=v1, code=401, details=null, kind=Status, message=Unauthorized, metadata=ListMeta(_continue=null, resourceVersion=null, selfLink=null, additionalProperties={}), reason=Unauthorized ,状态=失败,附加属性={})。

0 投票
0 回答
879 浏览

jenkins - 詹金斯作业执行中的“java.net.SocketException:套接字关闭”异常

我们正在使用 Kubernetes 插件来启动 slave 来构建项目。我们有一个 jenkins 作业,它计划通过 jenkins k8 插件在 kubernetes 上运行。该作业包含各个阶段的所有 shell 脚本。Jenkins master 位于一台 Linux 机器上,它通过 JNLP 协议与从属 pod 连接。我们在 java.net.SocketException: Socket closed 的执行失败的作业中遇到了这个间歇性问题。

如何增加套接字超时?我在哪里可以找到这个设置?我怎样才能解决这个问题?

附上以下日志:

=================================

=================================

0 投票
1 回答
1871 浏览

jenkins - 如果一个容器发生故障,如何杀死多容器 pod?

我正在使用Jenkins Kubernetes 插件,它在充当 Jenkins 代理的 Kubernetes 集群中启动 Pod。Pod 包含 3 个容器以提供从属逻辑、一个 Docker 套接字以及gcloud命令行工具。

通常的工作流程是slave完成它的工作并通知master它完成了。然后主节点终止 pod。但是,如果从属容器由于丢失网络连接而崩溃,则容器将终止并显示错误代码 255,其他两个容器继续运行,Pod 也将继续运行。这是一个问题,因为 Pod 有大量 CPU 请求,并且设置成本很低,slave 只在必要时运行,但是让多台机器 24 小时或周末运行会造成明显的经济损失。

我知道在同一个 pod 中启动多个容器并不是 Kubernetes 的艺术,但是如果我知道我在做什么并且我假设我会这样做,那也没关系。我敢肯定,鉴于 Jenkins Kubernetes 插件的工作方式,很难以不同的方式解决这个问题。

如果一个容器在没有重生的情况下失败,我可以让 pod 终止吗?作为具有超时的解决方案也是可以接受的,但是不太优选。

0 投票
1 回答
554 浏览

jenkins - 在声明性 Jenkinsfile 中动态加载代理

我想知道是否可以动态配置全局代理。

我需要在 Kubernetes 或 VM 上运行的不同 Jenkins 环境中运行我的管道。

当我必须在 VM 中运行管道时,我需要docker在 Kubernetes 上运行时使用代理,我需要使用kubernetes代理。

我试图引用代理并使用此引用,但它不起作用。

我试过的一些例子:

任何帮助将不胜感激。

谢谢塞诺尔

0 投票
0 回答
68 浏览

docker - 在尝试拉取大小超过 1 GB 的图像后,每 2 分钟重新创建一次 Pod。但没有完成

我正在尝试在 Kubernetes pod 中提取并运行大小超过 1 GB 的图像。2 分钟后,pod 被销毁并重新创建,并且同样的问题正在循环中发生。以下是我在运行时得到的 ///kubectl get pods

在上述步骤之后,在 k8s 杀死 pod 并再次重新创建它之后,它会继续拉取 120 秒,然后重复相同的拉取过程......

0 投票
1 回答
703 浏览

jenkins-plugins - 使用groovy配置jenkins kubernetes插件的pod保留值

尝试使用 groovy 脚本为 Jenkins Kubernetes 插件配置 pod 保留值。kubernetes.setPodRetention(org.csanchez.jenkins.plugins.kubernetes.pod.retention.Podretention.Never()) 方法配置失败,出现以下错误:

主配置中提供的值无效 方法没有签名:静态 org.csanchez.jenkins.plugins.kubernetes.pod.retention.PodRetention.Never() 适用于参数类型:() 值:[]

尝试通过对方法使用不同的值进行配置:kubernetes.setPodRetention(org.csanchez.jenkins.plugins.kubernetes.pod.retention.Never)

使用上述值也会出错。

请有人帮我解决这个问题,因为我很早就对此感到震惊。

下面是代码:

// 文档参考

https://javadoc.jenkins.io/plugin/kubernetes/

// 使用的方法 setPodRetention(PodRetention podRetention) 为插件设置全局 pod 保留策略。

有人可以让我知道如何使用 never 、 always 等值设置 pod 保留值吗?