如何将静态虚拟机添加为运行在Kubernetes中的Jenkins的永久节点

107次阅读
没有评论

问题描述

在Kubernetes集群中部署了Jenkins,并使用Kubernetes插件动态启动Jenkins的从节点。然而,某些构建需要一个具有GNU make和特定内核包的特定构建机器,因此用户有一个专用的静态虚拟机。用户想知道如何自动将静态虚拟机添加到Jenkins作为永久节点,这样当Jenkins pod关闭并重新启动时,它会自动连接到静态从节点。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

用户可以使用Jenkins Configuration as Code(JCasC)插件来配置静态从节点的附加。以下是使用JCasC插件配置静态从节点的示例:

  1. 打开Jenkins的values.yaml文件,该文件用于安装/升级Jenkins的helm chart。
  2. 在values.yaml文件中找到JCasC部分,并将defaultConfig设置为true,以启用JCasC插件。
  3. 在configScripts部分的credentials字段中,添加静态从节点的凭据配置。例如,可以添加一个用户名/密码凭据,用于连接到静态从节点。
  4. 在configScripts部分的permanent-nodes字段中,添加静态从节点的配置。包括节点名称、远程文件系统路径、执行器数量、标签等信息。
  5. 在launcher字段中,使用SSH作为启动器,并配置连接静态从节点所需的主机、端口和凭据。

以下是一个示例values.yaml文件的片段:

JCasC:
  defaultConfig: true
  configScripts:
    credentials: |
      credentials:
        system:
          domainCredentials:
            - credentials:
                - usernamePassword:
                    scope: GLOBAL
                    id: "CentOS_7.1_k4.14.11_ssh_password"
                    username: 'jenkins'
                    password: ${decodeBase64:BASE64ENCODEDPASSWD}
                    description: "Username/Password Credentials for CentOS_7.1_k4.14.11"
    permanent-nodes: |
      jenkins:
        nodes:
          - permanent:
              name: "CentOS 7.1 k4.14.11"
              remoteFS: "/home/jenkins"
              numExecutors: 2
              labelString: "CentOS_7.1_k4.14.11"
              mode: EXCLUSIVE
              retentionStrategy: "always"
              launcher:
                SSH:
                  jvmOptions: "-Xms256m -Xmx1024m -XX:MaxPermSize=1024m"
                  credentialsId: "CentOS_7.1_k4.14.11_ssh_password"
                  host: "10.1.66.120"
                  port: 22
                  sshHostKeyVerificationStrategy:
                    manuallyTrustedKeyVerificationStrategy:
                      requireInitialManualTrust: false

在上面的示例中,我们使用JCasC插件配置了静态从节点的凭据和节点信息。每当重新部署或升级Jenkins的helm chart时,它都会自动配置这些凭据并添加静态从节点。

方案2

使用脚本或工具来管理静态从节点的启动顺序可能会增加复杂性,并且需要确保静态从节点与Jenkins和Kubernetes之间的依赖关系正确设置。
另一种方法是编写脚本或使用工具来控制静态从节点的启动顺序。用户可以将静态虚拟机作为Kubernetes节点运行,并使用taints和tolerations来确保它仅用于适当的作业。这样,用户就不需要担心静态从节点的问题。

请注意,使用脚本或工具来管理静态从节点的启动顺序可能会增加复杂性,并且需要确保静态从节点与Jenkins和Kubernetes之间的依赖关系正确设置。

以上是将静态虚拟机添加为运行在Kubernetes中的Jenkins的永久节点的解决方案。根据用户的具体情况和需求,可以选择适合自己的方案。

正文完