如何在Kubernetes上安装和使用詹金斯吗?

  

如何在Kubernetes上安装詹金斯

,

首先,我们需要安装,它是Kubernetes的软件包管理器:

,

 <代码> curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3比美元;get_helm.sh
  chmod 700美元get_helm.sh
  美元。/get_helm。sh - v v2.15.0  

,
同样,我们还需要安装舵柄,以让舵正常运行:
,

 <代码> kubectl美元- n kube-system创建serviceaccount舵柄
  serviceaccount/舵柄创建
  
  ~/.kube
  美元kubectl创建clusterrolebinding舵柄——clusterrole集群管理员——serviceaccount=kube-system:舵柄
  clusterrolebinding.rbac.authorization.k8s。io/舵柄创建
  
  ~/.kube
  美元执掌init -服务帐户舵柄
  美元HELM_HOME已经配置在/用户/itspare/.helm。 

,
完成这些步骤之后,我们需要运行检查命令,以查看部署的配置值:
,

 <代码>执掌检查值稳定美元/jenkins祝辞值。yml  

,
仔细检查配置值并在需要的时候进行更改。然后安装图:
,

 <代码>舵安装稳定美元/jenkins, tls \
  ——名字詹金斯\
  ——名称空间詹金斯 

,
安装过程中会有一些关于下一步操作的说明:

,

注意:

,

    <李>,运行以下命令获取“admin”用户的密码:
    ,
     <代码> printf $ (kubectl得到秘密,默认名称空间my-jenkins - o jsonpath=皗.data.jenkins-admin-password}“;| base64解码);回声 

    ,

    <李>在相同的shell中获取詹金斯URL以访问这些命令:
    ,
     <代码>出口POD_NAME=$ (kubectl得到豆荚,默认名称空间- l“app.kubernetes.io/组件=jenkins-master"- l“app.kubernetes.io/实例=my-jenkins"- o jsonpath=皗. items [0] .metadata.name}“)
      回声http://127.0.0.1:8080
      kubectl——名称空间默认的左前美元POD_NAME 8080:8080  

    ,
    遵循这些步骤,它们将在http://127.0.0.1:8080启动代理服务器。
    ,

到那里输入你的用户名和密码。你将会拥有自己的詹金斯服务器:
,
如何在Kubernetes上安装和使用詹金斯?”> <br/>, <br/>不过,请记住,还有许多配置选项尚未修改<br/>,, <br/> </p> <p>在默认情况下,服务器会安装好最基本的插件,如Git和Kubernetes-Jenkins,我们可以根据自己的需要安装其他插件。</p> <p>, </p> <p>总而言之,使用舵安装詹金斯十分轻松。<br/>, </p> <h2>使用k8扩展CI/CD詹金斯流水线</h2> <p>, </p> <p>既然我们已经大致了解CI/CD如何在Kubernetes上运行的,那么我们来看一个在Kubernetes中部署高度可扩展的詹金斯部署的示例用例。人们通常用它(进行了少量修改)来处理基础结构的CI/CD,开始吧! </p> <p>, </p> <h3>使用詹金斯固定发行版</h3> <p>, </p> <p>虽然官方詹金斯镜像很适合入门,但它需要的配置超出了我们的期望。许多用户会选择一个固定的发行版,如my-bloody-jenkins (https://github.com/odavid/my-bloody-jenkins),它提供了一个较为完整的预安装插件以及配置选项。在可用的插件中,我们使用saml插件,SonarQubeRunner, Maven和Gradle。</p> <p>, </p> <p>它能够使用以下命令通过舵图安装:<br/>, </p> <pre> <代码>执掌美元回购添加odavid https://odavid.github.io/k8s-helm-charts
  美元舵安装odavid/my-bloody-jenkins </代码> </pre> <p>, <br/>我们选择使用以下Dockerfile部署自定义镜像:<br/>, </p> <pre> <代码>从odavid/my-bloody-jenkins: 2.190.2-161
  
  用户詹金斯
  
  复制插件。txt/usr/share/jenkins/ref//usr/local/bin/install-plugins运行。sh & lt;/usr/share/jenkins/ref/plugins.txt
  
  用户根</代码> </pre> <p>, <br/>其中plugins.txt文件是我们要预安装到镜像中的其他插件列表:<br/>, </p> <pre> <代码> build-monitor-plugin
  xcode-plugin
  rich-text-publisher-plugin
  jacoco
  scoverage
  dependency-check-jenkins-plugin
  可以
  shiningpanda
  pyenv-pipeline
  s3
  pipeline-aws
  appcenter
  multiple-scms
  Testng-plugin </代码> </pre> <p>, <br/>然后,只要dockerfile发生更改,我们就使用此通用Jenkinsfile来构建主:<br/>, </p> <pre> <代码> # !/usr/bin/env groovy
  
  节点(& # 39;通用# 39;){
  尝试{
  
  def dockerTag, jenkins_master
  
  阶段(& # 39;付款# 39;){
  付款([
  $类:& # 39;GitSCM& # 39;
  分支机构:scm.branches,
  doGenerateSubmoduleConfigurations: scm.doGenerateSubmoduleConfigurations,
  扩展:[[$类:& # 39;CloneOption& # 39;, noTags:假的,浅:假的,深度:0,参考:& # 39;& # 39;]],
  userRemoteConfigs: scm.userRemoteConfigs,
  ])
  
  def version=sh (returnStdout:真的,脚本:“git描述——标签的git rev-list——标签max-count=1”“) .trim ()
  def标签=sh (returnStdout:真的,脚本:“git rev-parse——短HEAD如何在Kubernetes上安装和使用詹金斯吗?