DevOps & CICD & Jenkins 简介
▶ 什么是DevOps?
DevOps是一种促进开发(Dev)和运维(Ops)团队之间协作与自动化的文化、实践和工具集。它的核心目标是通过改进沟通和协作来实现持续交付,使得软件开发周期更短、交付更快速且可靠。DevOps 主要解决传统软件开发中开发与运维之间的断层,通过自动化和协作,简化了软件交付过程。
▶ 什么是CI/CD?
CI/CD是持续集成(Continuous Integration)和持续交付(Continuous Delivery)或持续部署(Continuous Deployment)的简称,它们是 DevOps 实践中的重要组成部分。CI/CD 旨在通过自动化流程,提升软件的构建、测试和发布效率,确保代码变更能够更快速、安全地集成和交付到生产环境中。
▶ CI和CD的区别是什么?
CI(持续集成):
侧重于自动化构建和测试,确保代码集成后能够通过基本的测试流程。CI 主要关注的是代码集成的频率和质量。
CD(持续交付/持续部署):
持续交付:代码自动部署到准生产环境,随时可以部署到生产环境,但生产环境部署依然需要人工审批或触发。
持续部署:代码自动部署到生产环境,不需要人工介入。
▶ DevOps,CI,CD总结
• DevOps是一种结合开发和运维的文化和实践,通过协作、自动化、持续交付来提高软件开发和交付效率
• CI 关注的是代码的频繁集成和测试,确保代码在各个开发人员之间顺利集成。
• CD 关注的是自动化部署流程,确保代码能够快速、安全地交付到生产环境,从而提高产品发布的速度和稳定性。
▶ 搭建Jenkins
1.创建命名空间:
apiVersion: v1
kind: Namespace
metadata:
name: devops
#### 2.创建sc:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: jenkins-data-sc
provisioner: nfs-client
reclaimPolicy: Delete
allowVolumeExpansion: true
mountOptions:
- hard
- nfsvers=4
#### 3.创建pvc
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jenkins-data-pvc
namespace: devops
spec:
storageClassName: jenkins-data-sc
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
#### 4.创建服务账号
kubectl -n devops create sa jenkins-k8s-sa
kubectl -n devops create clusterrolebinding jenkins-k8s-sa-cluster --clusterrole=cluster-admin --serviceaccount=devops:jenkins-k8s-sa
yaml:serviceaccount.yaml Jenkins部署yaml文件
service.yaml Jenkins部署yaml文件
deploy.yaml Jenkins部署yaml文件
5.浏览器访问
• 输入ip:30002访问
• 首次登录需要获取一下管理员用户名密码,网页上会提示,进入容器中获取一下。(/var/jenkins_home/secrets/initialAdminPassword)
6.安装插件
• 进入自动安装插件,失败去网站手动下载,导入。
https://updates.jenkins.io/download/plugins/