文章目录
前言
本人是Java后端开发。如有错误请留言指出,共同改进。因是原创,请勿转载! 如需脚本与流程指导,可留言!
一、实践环境准备
1. 服务器说明
我这里使用的是八台centos 7.2实体机, 具体信息如下表:
系统类型 | IP地址 | 节点角色 | CPU | Memory | Hostname |
---|---|---|---|---|---|
centos-7.2 | 192.168.8.240 | master | >=8 | >=16G | k8s-master0 |
centos-7.2 | 192.168.8.241 | master | >=8 | >=8G | k8s-master1 |
centos-7.2 | 192.168.8.242 | master | >=8 | >=8G | k8s-master2 |
centos-7.2 | 192.168.8.243 | worker | >=4 | >=4G | k8s-worker1 |
centos-7.2 | 192.168.8.244 | worker | >=4 | >=4G | k8s-worker2 |
centos-7.2 | 192.168.8.245 | worker | >=2 | >=4G | k8s-gluster0 |
centos-7.2 | 192.168.8.245 | worker | >=2 | >=4G | k8s-gluster1 |
centos-7.2 | 192.168.8.245 | worker | >=2 | >=4G | k8s-gluster2 |
2. 准备工作
2.1 准备 Kubernetes 集群或者单机部署
相信应该看这文章小伙伴已经安装好环境,如果没有可以百度一下
2.2 实用Pod形式或者其他方式安装 jenkins-master (按需)
kubectl apply -f jenkins-deployment.yaml
kubectl apply -f jenkins-glusterfs-pvc.yaml
kubectl apply -f jenkins-ingress.yaml
kubectl apply -f jenkins-rbac.yaml
二、Jenkins页面操作
1. 安装插件
1.1 安装 Kubernetes 插件
1. 系统管理
2. 插件管理
3. 可选插件
4. 过滤:Kubernetes plugin
5. 安装后重启
2. 配置 Kubernetes 连接部分
2.1 系统管理 --> 节点列表 --> Configure Clouds
2.3 配置 Kubernetes 对应IP
所有实用到端口都是在创建Pod时候指定暴露的,本文是做slave,并非说jenkins,所以就直接带过, 记得按连接测试。
3. 创建 Slave
3.1 点击 Pod Template detailes…
TIPS: 实用Dockerfile构建自己喜欢的,可以使用基于 jenkins/jnlp-slave
3.2 挂载需要运行指令
4. jenkins-slave 生命周期
4.1 创建流水线项目
- 限制项目的运行节点 (输入之前的标签:jenkins-slave)
- 执行Shell
echo "测试 Kubernetes 动态生成 jenkins slave"
echo "==============docker in docker==========="
sleep 30s;
docker info
echo "=============kubectl============="
kubectl get pods
- 终端查看
^C[root@k8s-master0 jenkins]# kubectl get pod -o wide -w -n devops
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
jenkins-8678cbcf74-2gb77 1/1 Running 1 2d9h 172.22.0.94 k8s-worker0 <none> <none>
jenkins-slave-ppctk 3/3 Running 0 11s 172.22.0.126 k8s-worker0 <none> <none>
jenkins-slave-ppctk 3/3 Terminating 0 62s 172.22.0.126 k8s-worker0 <none> <none>
jenkins-slave-ppctk 0/3 Terminating 0 93s 172.22.0.126 k8s-worker0 <none> <none>
jenkins-slave-ppctk 0/3 Terminating 0 103s 172.22.0.126 k8s-worker0 <none> <none>
jenkins-slave-ppctk 0/3 Terminating 0 103s 172.22.0.126 k8s-worker0 <none> <none>
5. 额外提个醒
5.1 在部分实际操作中,都会在jenkins新建的工程下运行。
使用Pipeline例子:
pipeline {
agent {
node {
label 'jenkins-slave'
}
}
stages {
stage('init') {
steps{
script{
println "author: eddie.lee <xxxx@qq.com>"
println "Blog: https://blog.eddilee.cn/"
}
}
}
stage('git pull') {
steps{
# git拉取代码操作
}
}
stage('npm build') {
steps{
script{
container('nodejs') {
# 比如 vue的打包操作
}
}
}
}
stage('docker build'){
steps{
# 上传镜像备份操作
}
}
stage('kubernetes deployment'){
steps{
# k8s创建pod操作
}
}
}
}