我出于个人兴趣正在研究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注册表中下载,并将其保存到我的本地计算机中?这将如何工作,请您给我解释一下吗?
答案 0 :(得分:1)
上面的代码用于jenkins插件https://github.com/jenkinsci/kubernetes-plugin。
因此,运行上述詹金斯将在代理或主服务器上运行作业。图像将下载到该代理/主服务器。上面的插件用于设置jenkins代理,因此,如果没有代理,它将在master上运行。