Kubernetes Pod模板预Pod,服务,部署yaml文件

时间:2019-12-13 18:19:07

标签: jenkins kubernetes

我出于个人兴趣正在研究kubernetes,我正在尝试创建jenkins作业来部署我们的应用程序。我有一台主计算机和一台工作者计算机,并且都已启动并且正在运行,我可以将两台计算机从另一台计算机ping通。

到目前为止,我的群集没有新的安装环境,也没有任何Pod和部署服务。 现在,jenkins文件包含用于nodejs和docker的Pod模板,可以单步安装NPM模块。

def label = "worker-${UUID.randomUUID().toString()}"

podTemplate(
    cloud: 'kubernetes',
    namespace: 'test',
    imagePullSecrets: ['regcred'],
    label: label,
    containers: [
        containerTemplate(name: 'nodejs', image: 'nodejscn/node:latest', ttyEnabled: true, command: 'cat'),
        containerTemplate(name: 'docker', image: 'nodejscn/node:latest', ttyEnabled: true, command: 'cat'),
        containerTemplate(name: 'kubectl', image: 'k8spoc1/kubctl:latest', ttyEnabled: true, command: 'cat')
    ],
    volumes: [
        hostPathVolume(hostPath: '/var/run/docker.sock', mountPath: '/var/run/docker.sock'),
        hostPathVolume(hostPath: '/root/.m2/repository', mountPath: '/root/.m2/repository')
    ]
) {

    node(label) {
      def scmInfo = checkout scm
      def image_tag
      def image_name
      sh 'pwd'
      def gitCommit = scmInfo.GIT_COMMIT
      def gitBranch = scmInfo.GIT_BRANCH
      def commitId
      commitId= scmInfo.GIT_COMMIT[0..7]
      image_tag = "${scmInfo.GIT_BRANCH}-${scmInfo.GIT_COMMIT[0..7]}"

      stage('NPM Install') {
           container ('nodejs') {
              withEnv(["NPM_CONFIG_LOGLEVEL=warn"]) {
                sh 'npm install'
            }
           }
      }
   }
}

现在的问题是,是否使用上述代码运行jenkins作业,上述docker和nodejs映像是否将从docker注册表中下载,并将其保存到我的本地计算机中?这将如何工作,请您给我解释一下吗?

1 个答案:

答案 0 :(得分:1)

上面的代码用于jenkins插件https://github.com/jenkinsci/kubernetes-plugin

因此,运行上述詹金斯将在代理或主服务器上运行作业。图像将下载到该代理/主服务器。上面的插件用于设置jenkins代理,因此,如果没有代理,它将在master上运行。