基于k8s的DEVOPS Part4 ---- 部署Jenkins

Jenkins 功能

Jenkins是一款开源CI&CD 系统,用于自动化各种任务,包括构建、测试和部署。主要通过pipeline实现CICD

持续集成(Continuous Integration,CI):代码合并、部署、自动化测试都在一起,不断地执行这个过程,并对结果反馈。
持续交付(ContinuousDelivery,CD):是一种软件工程方法,让软件的产出过程在一个短周期内完成,以保障软件可以稳定、持续的保持在随时可以发布的状态。与持续集成相比,持续交付偏重点在于可交付的产物。
持续部署(ContinuousDeployment,CD):通过自动化部署的手动将软件频繁的交付,部署到期望的环境。

Jenkins 部署

需要提前准备好PV自动供给,为Jenkins持久化数据。

[root@k8s-master03 ~]# kubectl get sc
NAME                            PROVISIONER      RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
managed-nfs-storage (default)   fuseim.pri/ifs   Delete          Immediate           false                  6h52m

 

部署YAML

[root@k8s-master03 jenkins]# kubectl apply -f jenkins.yml 
deployment.apps/jenkins created
persistentvolumeclaim/jenkins created
service/jenkins created
serviceaccount/jenkins created
role.rbac.authorization.k8s.io/jenkins created
rolebinding.rbac.authorization.k8s.io/jenkins created

[root@k8s-master03 jenkins]# kubectl get pod -n ops | grep jen
jenkins-f656474b8-cbdzr               1/1     Running   0          102s

查看jenkins日志获取登陆口令

[root@k8s-master03 jenkins]# kubectl logs jenkins-f656474b8-cbdzr -n ops 
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

77614dc33d494a96b9b1d80421b1bf8a

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

访问地址: http://172.16.0.21:30008 粘贴日志获取的口令

 

 

 

不选择任何插件

 

 

 创建管理员账号以及密码

 

 

 完成初始化安装

 

 

 安装插件

### 默认从国外网络下载插件,会比较慢,建议修改国内源
# 进入到nfs共享目录
cd /ifs/kubernetes/ops-jenkins-pvc-1d29806a-10d2-448f-846f-c306761f8527/update
sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json

sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
# 删除pod重建,pod名称改成你实际的
kubectl delete pod jenkins-f656474b8-cbdzr -n ops

管理Jenkins->系统配置-->管理插件 

分别搜索Git Parameter/Git/Pipeline/kubernetes/Config File Provider,选中点击安装。

Git Parameter:Git参数化构建

Git:拉取代码

Pipeline:流水线

kubernetes:连接Kubernetes动态创建Slave代理

Config File Provider:存储kubectl用于连接k8s集群的kubeconfig配置文件

 

 

 安装完成后添加 K8S群集信息

 

 

 

 

 

 

 

[root@k8s-master03 jenkins]# kubectl get svc -n ops | grep jenjenkins              NodePort    10.97.93.35      <none>        80:30008/TCP,50000:32250/TCP   5m48s

posted @ 2021-01-01 23:03  小兵黑尔  阅读(223)  评论(0编辑  收藏  举报