在docker和k8s中安装Jenkins,详细教程!!!
·
一、概念
官网:使用 Jenkins
1.原理

jenkins是一款开源的CI&CD软件,用于自动化各种任务,包括构建、测试和部署软件
2.pipline(流水线)和blueocean
pipline:操作过程和步骤,拉取代码、编译、测试、部署、镜像制作等操作blueocean是可以用来图形化管理(编写、查看、修改等)我们的流水线。是pipline的可视化UI。

二、使用docker安装部署
1.拉取镜像
[root@k8snode-1 ~]# docker pull jenkinsci/blueocean
2.启动容器
docker run \
--name sc-jenkins-1 \
-u root \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean
[root@k8snode-1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d824ac703b38 jenkinsci/blueocean "/sbin/tini -- /usr/…" 5 seconds ago Up 4 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp sc-jenkins-1
3.访问验证

4.解锁Jenkins
[root@k8snode-1 ~]# docker ps |grep -i jenkins
d824ac703b38 jenkinsci/blueocean "/sbin/tini -- /usr/…" 13 minutes ago Up 13 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp sc-jenkins-1
[root@k8snode-1 ~]# docker exec -it sc-jenkins-1 bash
#查看登陆密码
bash-5.1# cat /var/jenkins_home/secrets/initialAdminPassword
97ae6e914ab24130a8d9dfa12c07b952
5.安装相关插件

三、使用k8s安装部署
1.准备工作
官网:Kubernetes
1.1.下载git
[root@k8smaster ~]# yum install git -y
1.2.从代码仓库拉取相关文件
[root@k8smaster ~]# git clone https://github.com/scriptcamp/kubernetes-jenkins
[root@k8smaster kubernetes-jenkins]# ls
deployment.yaml namespace.yaml serviceAccount.yaml service.yaml volume.yaml
2.创建相关命名空间
[root@k8smaster kubernetes-jenkins]# kubectl apply -f namespace.yaml
namespace/devops-tools created
[root@k8smaster kubernetes-jenkins]# kubectl get ns
NAME STATUS AGE
default Active 105d
devops-tools Active 7s
3.创建服务账号绑定集群角色
[root@k8smaster kubernetes-jenkins]# kubectl apply -f serviceAccount.yaml
clusterrole.rbac.authorization.k8s.io/jenkins-admin created
serviceaccount/jenkins-admin created
clusterrolebinding.rbac.authorization.k8s.io/jenkins-admin created
4.创建卷(存储数据)
4.1.查看节点信息
[root@k8smaster kubernetes-jenkins]# kubectl get node
NAME STATUS ROLES AGE VERSION
k8smaster Ready control-plane,master 105d v1.20.6
k8snode-1 Ready worker 105d v1.20.6
k8snode-2 Ready worker 104d v1.20.6
4.2.修改volume.yaml 文件,改成自己的主机名

4.3.创建卷
[root@k8smaster kubernetes-jenkins]# kubectl apply -f volume.yaml
storageclass.storage.k8s.io/local-storage created
persistentvolume/jenkins-pv-volume created
persistentvolumeclaim/jenkins-pv-claim created
5.部署Jenkins
建议先删除之前使用docker容器安装的jenkins
[root@k8snode-1 ~]# docker stop sc-jenkins-1
sc-jenkins-1
[root@k8smaster kubernetes-jenkins]# kubectl apply -f deployment.yaml
deployment.apps/jenkins created

6.启动服务发布Jenkins的pod
[root@k8smaster kubernetes-jenkins]# kubectl apply -f service.yaml
service/jenkins-service created
[root@k8smaster kubernetes-jenkins]# kubectl get svc -n devops-tools
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
jenkins-service NodePort 10.108.82.214 <none> 8080:32000/TCP 25s
7.访问验证
可以访问k8s集群中的任何一台机器

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)