本系列教程最主要的目地是使用k8s做持续集成,从本文开始,才算是正式进入主题。
如果使用的是阿里云Kubernetes集群 ,可以安装其 ack-jenkins应用。
5分钟在阿里云Kubernetes服务上搭建jenkins环境并完成应用构建到部署的流水线作业
为了通用性,这里并没有使用ack-jenkins,而是使用官方的 jenkinsci/blueocean
镜像。
jenkins中文官网
因为后面要讲的jenkins内容需要联网,但是之前购买的服务器是没有绑定公网ip的,这里也不想购买绑定了(省钱)。所以临时先使用小A同学上的docker来安装jenkins。
mkdir -p /mldong/docker/jenkins mkdir -p /mldong/docker/jenkins/data 复制代码
cat <<EOF > /mldong/docker/jenkins/docker-compose.yaml version: '2' services: jenkins: privileged: true container_name: myjenkins image: "jenkinsci/blueocean:latest" restart: always user: root volumes: - "/etc/localtime:/etc/localtime:ro" - "./data:/var/jenkins_home" - "/var/run/docker.sock:/var/run/docker.sock" - "/root:/home" ports: - "8080:8080" - "50000:50000" EOF 复制代码
/etc/localtime:/etc/localtime:ro
主要是与宿主时区同步 ./data:/var/jenkins_home
将容器内 /var/jenkins_home
持久化到宿主当前目录下的 data
目录 /root:/home
docker-compose -f /mldong/docker/jenkins/docker-compose.yaml up -d 复制代码
http://ip:8080
注意端口访问权限,如果是阿里云,需要设置入站规则。
jenkins Pipeline(或简称为 "Pipeline")是一套插件,将持续交付的实现和实施集成到 Jenkins 中。
持续交付 Pipeline 自动化的表达了这样一种流程:将基于版本控制管理的软件持续的交付到您的用户和消费者手中。
Jenkins Pipeline 提供了一套可扩展的工具,用于将“简单到复杂”的交付流程实现为“持续交付即代码”。Jenkins Pipeline 的定义通常被写入到一个文本文件(称为 Jenkinsfile
)中,该文件可以被放入项目的源代码控制库中。
搜索插件 localization
安装中
安装成功,重启服务
中文版页面
这个过程有点慢,需要耐心等待
管理凭证
添加域
添加凭据
选择Secret file
ID要简单记一下,流水线访问集群时需要用到
配置成功
修改流水线
pipeline { agent any stages { stage('Hello') { steps { echo 'Hello World' } } stage("kubectl") { agent { docker { image 'lwolf/helm-kubectl-docker' } } steps { withKubeConfig([credentialsId: 'ali-k8s-config',serverUrl: 'https://172.26.22.121:6443']) { sh 'kubectl get nodes' } } } } } 复制代码
结果