问题标签 [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.
jenkins - 如何从rancher 2.0获取kubernete的配置?
我有rancher 2.0来使用RBAC访问控制来管理kubernetes,kubeconfig
我用的kubectl
很简单,它将集群服务器显示给rancher。
然后在像jenkins kubernetes plugin这样的系统中,我该如何填写kubernetes的信息Name, Kubernetes URL, Kubernetes server certificate key, ...
见下文
jenkins - 如何在管道中使用 kubernetes-plugin 访问另一个容器的容器端口
我正在尝试从一个容器访问暴露的端口到同一节点内的另一个容器,但我不知道如何使用管道中的 kubernetes 插件来做到这一点。
在我的脚本中,我创建了两个容器并公开了数据库容器的端口,在另一个容器中,我试图访问主机的端口 1521。
jenkins - 如何在隔离的 pod 中为声明式 jenkins 管道运行并行阶段
我正在尝试在声明性 jenkins 管道上并行运行一些端到端测试,并在不同的 kubernetes pod 上运行,但 jenkins 似乎尝试在相同的 kubernetes pod 上运行并行阶段。这会导致数据库死锁,因为两个进程都尝试插入/截断/更新/查询相同的表。有没有办法可以为每个并行阶段旋转不同的吊舱?
kubernetes 插件配置:
并行阶段:
期望:我想让詹金斯为每个平行阶段旋转两个不同的吊舱。这将允许我为每个测试使用不同的数据库。
实际结果: Jenkins 在同一个 pod 上同时运行两个阶段。
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 - 但是当您看到失败时,它会询问已使用的容器是否从类文件夹中获取了所有内容。
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 ,状态=失败,附加属性={})。
jenkins - 詹金斯作业执行中的“java.net.SocketException:套接字关闭”异常
我们正在使用 Kubernetes 插件来启动 slave 来构建项目。我们有一个 jenkins 作业,它计划通过 jenkins k8 插件在 kubernetes 上运行。该作业包含各个阶段的所有 shell 脚本。Jenkins master 位于一台 Linux 机器上,它通过 JNLP 协议与从属 pod 连接。我们在 java.net.SocketException: Socket closed 的执行失败的作业中遇到了这个间歇性问题。
如何增加套接字超时?我在哪里可以找到这个设置?我怎样才能解决这个问题?
附上以下日志:
=================================
=================================
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 终止吗?作为具有超时的解决方案也是可以接受的,但是不太优选。
jenkins - 在声明性 Jenkinsfile 中动态加载代理
我想知道是否可以动态配置全局代理。
我需要在 Kubernetes 或 VM 上运行的不同 Jenkins 环境中运行我的管道。
当我必须在 VM 中运行管道时,我需要docker
在 Kubernetes 上运行时使用代理,我需要使用kubernetes
代理。
我试图引用代理并使用此引用,但它不起作用。
我试过的一些例子:
任何帮助将不胜感激。
谢谢塞诺尔
docker - 在尝试拉取大小超过 1 GB 的图像后,每 2 分钟重新创建一次 Pod。但没有完成
我正在尝试在 Kubernetes pod 中提取并运行大小超过 1 GB 的图像。2 分钟后,pod 被销毁并重新创建,并且同样的问题正在循环中发生。以下是我在运行时得到的 ///kubectl get pods
在上述步骤之后,在 k8s 杀死 pod 并再次重新创建它之后,它会继续拉取 120 秒,然后重复相同的拉取过程......
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 保留值吗?