1、集群规划,如下所示:

主机名

ip地址

角色

端口号

k8s-master

192.168.110.133

k8s-master

api-server:8080

k8s-node2

192.168.110.134

k8s-node1,jenkins

tomcat:8080(跑jenkins)

k8s-node3

192.168.110.135

k8s-node1,gitlab

gitlab:80,8080

2、为了减轻机器压力,将之前部署地Pod节点都删除掉,如下所示:

1 [root@k8s-master ~]# kubectl get all -o wide2 NAME DESIRED CURRENT READY AGE CONTAINER(S) IMAGE(S) SELECTOR3 rc/mysql 1 1 1 1d mysql 192.168.110.133:5000/mysql:5.7.30 app=mysql4 rc/myweb 1 1 1 1d myweb 192.168.110.133:5000/tomcat-book:5.0 app=myweb5

6 NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR7 svc/glusterfs 10.254.182.41 49152/TCP 1d

8 svc/kubernetes 10.254.0.1 443/TCP 27d

9 svc/mysql 10.254.126.11 3306/TCP 1d app=mysql10 svc/myweb 10.254.188.155 8080:30008/TCP 1d app=myweb11

12 NAME READY STATUS RESTARTS AGE IP NODE13 po/mysql-wldks 1/1 Running 0 1d 172.16.66.6 k8s-node314 po/myweb-c8sf6 1/1 Running 1 1d 172.16.66.5 k8s-node315 po/nginx 1/1 Running 0 1d 172.16.66.3 k8s-node316 po/nginx2 1/1 Running 0 1d 172.16.74.5 k8s-node217 [root@k8s-master ~]# kubectl delete rc --all18 replicationcontroller "mysql"deleted19 replicationcontroller "myweb"deleted20 [root@k8s-master ~]# kubectl delete svc --all21 service "glusterfs"deleted22 service "kubernetes"deleted23 service "mysql"deleted24 service "myweb"deleted25 [root@k8s-master ~]# kubectl get all -o wide26 NAME READY STATUS RESTARTS AGE IP NODE27 nginx 1/1 Running 0 1d 172.16.66.3 k8s-node328 nginx2 1/1 Running 0 1d 172.16.74.5 k8s-node229 [root@k8s-master ~]# kubectl delete pod nginx pod nginx230 pod "nginx"deleted31 pod "nginx2"deleted32 Error from server (NotFound): pods "pod"not found33 [root@k8s-master ~]# kubectl get all -o wide34 NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR35 svc/kubernetes 10.254.0.1 443/TCP 9s

36 [root@k8s-master ~]#

3、k8s-node3节点安装gitlab,如下所示:

首先需要下载gitlab,如下所示:

1 [root@k8s-node3 ~]# wget https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm

2 --2020-07-02 10:22:32-- https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm

3 Resolving mirror.tuna.tsinghua.edu.cn (mirror.tuna.tsinghua.edu.cn)... 101.6.8.193, 2402:f000:1:408:8100::1

4 Connecting to mirror.tuna.tsinghua.edu.cn (mirror.tuna.tsinghua.edu.cn)|101.6.8.193|:443... connected.5 HTTP request sent, awaiting response... 200OK6 Length: 569408968 (543M) [application/x-redhat-package-manager]7 Saving to: ‘gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm’8

9 100%[=======================================================================================================================================================================>] 569,408,968 1.79MB/s in7m 19s10

11 2020-07-02 10:29:54 (1.24 MB/s) - ‘gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm’ saved [569408968/569408968]12

13 [root@k8s-node3 ~]#

下载完毕,进行安装,安装包比较大,安装速度也取决于硬盘的类型,如下所示:

1 [root@k8s-node3 ~]# yum localinstall gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm -y2 Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager3

4 This system is not registered with an entitlement server. You can use subscription-manager to register.5

6 Examining gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm: gitlab-ce-11.9.11-ce.0.el7.x86_647 Marking gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm to be installed8 Resolving Dependencies9 -->Running transaction check10 ---> Package gitlab-ce.x86_64 0:11.9.11-ce.0.el7 will be installed11 -->Finished Dependency Resolution12 base/7/x86_64 | 3.6 kB 00:00:00

13 centos-gluster7/7/x86_64 | 3.0 kB 00:00:00

14 extras/7/x86_64 | 2.9 kB 00:00:00

15 updates/7/x86_64 | 2.9 kB 00:00:00

16 updates/7/x86_64/primary_db | 3.0 MB 00:00:07

17

18 Dependencies Resolved19

20 =================================================================================================================================================================================================================

21 Package Arch Version Repository Size22 =================================================================================================================================================================================================================

23 Installing:24 gitlab-ce x86_64 11.9.11-ce.0.el7 /gitlab-ce-11.9.11-ce.0.el7.x86_64 1.5G25

26 Transaction Summary27 =================================================================================================================================================================================================================

28 Install 1Package29

30 Total size: 1.5G31 Installed size: 1.5G32 Downloading packages:33 Running transaction check34 Running transaction test35 Transaction test succeeded36 Running transaction37 Installing : gitlab-ce-11.9.11-ce.0.el7.x86_64 1/1

38 It looks like GitLab has not been configured yet; skipping the upgrade script.39

40 *. *.41 *** ***

42 ***** *****

43 .****** *******

44 ******** ********

45 ,,,,,,,,,***********,,,,,,,,,46 ,,,,,,,,,,,*********,,,,,,,,,,,47 .,,,,,,,,,,,*******,,,,,,,,,,,,48 ,,,,,,,,,*****,,,,,,,,,.49 ,,,,,,,****,,,,,,50 .,,,***,,,,51 ,*,.52

53

54

55 _______ __ __ __56 / ____(_) /_/ / ____ _/ /_57 / / __/ / __/ / / __ `/__ \58 / /_/ / / /_/ /___/ /_/ / /_/ /

59 \____/_/\__/_____/\__,_/_.___/

60

61

62 Thank you for installing GitLab!

63 GitLab was unable to detect a valid hostname foryour instance.64 Please configure a URL foryour GitLab instance by setting `external_url`65 configuration in /etc/gitlab/gitlab.rb file.66 Then, you can start your GitLab instance by running the following command:67 sudo gitlab-ctl reconfigure68

69 For a comprehensive list of configuration options please see the Omnibus GitLab readme70 https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

71

72 Verifying : gitlab-ce-11.9.11-ce.0.el7.x86_64 1/1

73

74 Installed:75 gitlab-ce.x86_64 0:11.9.11-ce.0.el776

77 Complete!

78 [root@k8s-node3 ~]#

安装完毕,配置gitlab(gitlab是使用ruby编写的一个工具,所以配置文件是rb的后缀),第一点是修改gitlab的访问地址,第二点是修改普罗米修斯的监控关闭掉,节省资源,如下所示:

1 [root@k8s-node3 ~]# vim /etc/gitlab/gitlab.rb

修改内容,修改的时候建议使用域名,方便后期迁移,这里直接使用ip地址了,如下所示:

1 # external_url 'http://gitlab.example.com'

2 external_url 'http://192.168.110.135'

1 # prometheus_monitoring['enable'] = true

2 prometheus_monitoring['enable'] = false

修改完配置之后,需要执行命令让其生效,由于命令太长太长,这里就不贴了,如下所示:

1 [root@k8s-node3 ~]# gitlab-ctl reconfigure2

3 .4 .5 .6 .7 .8 .9

10 Running handlers:11 Running handlers complete12 Chef Client finished, 338/858 resources updated in 02 minutes 26seconds13 gitlab Reconfigured!

部署成功之后,就会把应用跑起来,此时可以看下内存,避免内存不够,如下所示:

1 [root@k8s-node3 ~]# free -h2 total used free shared buff/cache available3 Mem: 2.2G 1.4G 186M 69M 621M 411M4 Swap: 2.0G 90M 1.9G5 [root@k8s-node3 ~]#

访问地址:http://192.168.110.135/,此时就可以访问一下gitlab了,第一次访问gitlab需要设置一个密码,密码长度必须是8位,如下所示:

设置完毕密码,就可以进行登录了,如下所示:

gitlab登录成功,如下所示:

gitlab创建仓库并上传代码,如下所示:

创建一个仓库,指定仓库的名称,可以对此进行描述,如下所示:

私有仓库创建成功是这个样子的,如下所示:

向下滑动,可以看到命令提示,如下所示:

此时,向仓库上传代码,上传代码,需要首先执行下面的命令,配置全局的用户,如下所示:

1 [root@k8s-node3 ~]# cd /opt/

2 [root@k8s-node3 opt]# ls3 gitlab myregistry rh4 [root@k8s-node3 opt]# mkdir feiji5 [root@k8s-node3 opt]# ls6 feiji gitlab myregistry rh7 [root@k8s-node3 opt]# cd feiji/

8 [root@k8s-node3 feiji]# ls9 css img index.html js10 [root@k8s-node3 feiji]# git config --global user.name "Administrator"

11 bash: git: command not found...12 [root@k8s-node3 feiji]# git config --global user.email "admin@example.com"

13 bash: git: command not found...14 [root@k8s-node3 feiji]# gitlab-

15 gitlab-ctl gitlab-psql gitlab-rails gitlab-rake16 [root@k8s-node3 feiji]#

我这里还没有git的命令,首先安装一下,如下所示:

1 [root@k8s-node3 feiji]# yum install git -y2 Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager3

4 This system is not registered with an entitlement server. You can use subscription-manager to register.5

6 Loading mirror speeds fromcached hostfile7 * base: mirrors.tuna.tsinghua.edu.cn8 * centos-gluster7: mirrors.huaweicloud.com9 *extras: mirror.bit.edu.cn10 *updates: mirror.bit.edu.cn11 Resolving Dependencies12 -->Running transaction check13 ---> Package git.x86_64 0:1.8.3.1-23.el7_8 will be installed14 --> Processing Dependency: perl-Git = 1.8.3.1-23.el7_8 for package: git-1.8.3.1-23.el7_8.x86_6415 --> Processing Dependency: perl(Term::ReadKey) for package: git-1.8.3.1-23.el7_8.x86_6416 --> Processing Dependency: perl(Git) for package: git-1.8.3.1-23.el7_8.x86_6417 --> Processing Dependency: perl(Error) for package: git-1.8.3.1-23.el7_8.x86_6418 -->Running transaction check19 ---> Package perl-Error.noarch 1:0.17020-2.el7 will be installed20 ---> Package perl-Git.noarch 0:1.8.3.1-23.el7_8 will be installed21 ---> Package perl-TermReadKey.x86_64 0:2.30-20.el7 will be installed22 -->Finished Dependency Resolution23

24 Dependencies Resolved25

26 =================================================================================================================================================================================================================

27 Package Arch Version Repository Size28 =================================================================================================================================================================================================================

29 Installing:30 git x86_64 1.8.3.1-23.el7_8 updates 4.4M31 Installing fordependencies:32 perl-Error noarch 1:0.17020-2.el7 base 32k33 perl-Git noarch 1.8.3.1-23.el7_8 updates 56k34 perl-TermReadKey x86_64 2.30-20.el7 base 31k35

36 Transaction Summary37 =================================================================================================================================================================================================================

38 Install 1 Package (+3Dependent packages)39

40 Total download size: 4.5M41 Installed size: 22M42 Downloading packages:43 (1/4): perl-Git-1.8.3.1-23.el7_8.noarch.rpm | 56 kB 00:00:00

44 (2/4): perl-TermReadKey-2.30-20.el7.x86_64.rpm | 31 kB 00:00:00

45 (3/4): perl-Error-0.17020-2.el7.noarch.rpm | 32 kB 00:00:00

46 (4/4): git-1.8.3.1-23.el7_8.x86_64.rpm | 4.4 MB 00:00:07

47 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

48 Total 588 kB/s | 4.5 MB 00:00:07

49 Running transaction check50 Running transaction test51 Transaction test succeeded52 Running transaction53 Installing : 1:perl-Error-0.17020-2.el7.noarch 1/4

54 Installing : perl-TermReadKey-2.30-20.el7.x86_64 2/4

55 Installing : perl-Git-1.8.3.1-23.el7_8.noarch 3/4

56 Installing : git-1.8.3.1-23.el7_8.x86_64 4/4

57 Verifying : git-1.8.3.1-23.el7_8.x86_64 1/4

58 Verifying : 1:perl-Error-0.17020-2.el7.noarch 2/4

59 Verifying : perl-Git-1.8.3.1-23.el7_8.noarch 3/4

60 Verifying : perl-TermReadKey-2.30-20.el7.x86_64 4/4

61

62 Installed:63 git.x86_64 0:1.8.3.1-23.el7_864

65 Dependency Installed:66 perl-Error.noarch 1:0.17020-2.el7 perl-Git.noarch 0:1.8.3.1-23.el7_8 perl-TermReadKey.x86_64 0:2.30-20.el767

68 Complete!

69 [root@k8s-node3 feiji]#

此时,向仓库上传代码,上传代码,需要首先执行下面的命令,配置全局的用户,如下所示:

1 [root@k8s-node3 feiji]# git config --global user.name "Administrator"

2 [root@k8s-node3 feiji]# git config --global user.email "admin@example.com"

3 [root@k8s-node3 feiji]#

由于已经在界面创建了仓库,此时可以忽略Create a new repository步骤,下面开始执行Existing folder在已存在的目录中初始化这个仓库,如下所示:

1 cd existing_folder # 进入到要提交代码的目录2 git init # 初始化一个仓库3 git remote add origin http://192.168.110.135/root/feiji.git # 添加远程的一个地址,将远程的仓库添加进来

4 git add . # 提交到远程仓库5 git commit -m "Initial commit"# 提交的分支是master6 git push -u origin master # 输入gitlab的账号密码即可

具体操作,如下所示:

1 [root@k8s-node3 feiji]# git init2 Initialized empty Git repository in /opt/feiji/.git/

3 [root@k8s-node3 feiji]# git remote add origin http://192.168.110.135/root/feiji.git

4 [root@k8s-node3 feiji]# git add .5 [root@k8s-node3 feiji]# git commit -m "Initial commit"

6 [master (root-commit) 6a6a1d5] Initial commit7 125 files changed, 588 insertions(+)8 create mode 100644 img/.DS_Store9 create mode 100644 img/._.DS_Store10 create mode 100644 img/._bg.jpg11 create mode 100644 img/._bg2.jpg12 create mode 100644 img/._bigbg.jpg13 create mode 100644 img/._bossbullet.png14 create mode 100644 img/._bullet.png15 create mode 100644 img/._enemy1.png16 create mode 100644 img/._enemy1boom1.png17 create mode 100644 img/._enemy1boom2.png18 create mode 100644 img/._enemy1boom3.png19 create mode 100644 img/._enemy1boom4.png20 create mode 100644 img/._enemy1boom5.png21 create mode 100644 img/._enemy1boom6.png22 create mode 100644 img/._enemy2.png23 create mode 100644 img/._enemy2boom1.png24 create mode 100644 img/._enemy2boom2.png25 create mode 100644 img/._enemy2boom3.png26 create mode 100644 img/._enemy2boom4.png27 create mode 100644 img/._enemy2boom5.png28 create mode 100644 img/._enemy2boom6.png29 create mode 100644 img/._enemy3.png30 create mode 100644 img/._enemy3boom1.png31 create mode 100644 img/._enemy3boom2.png32 create mode 100644 img/._enemy3boom3.png33 create mode 100644 img/._enemy3boom4.png34 create mode 100644 img/._enemy3boom5.png35 create mode 100644 img/._enemy3boom6.png36 create mode 100644 img/._enemy4.png37 create mode 100644 img/._enemy4boom1.png38 create mode 100644 img/._enemy4boom2.png39 create mode 100644 img/._enemy4boom3.png40 create mode 100644 img/._enemy4boom4.png41 create mode 100644 img/._enemy4boom5.png42 create mode 100644 img/._enemy4boom6.png43 create mode 100644 img/._load1.png44 create mode 100644 img/._load2.png45 create mode 100644 img/._load3.png46 create mode 100644 img/._load4.png47 create mode 100644 img/._load5.png48 create mode 100644 img/._load6.png49 create mode 100644 img/._load7.png50 create mode 100644 img/._load8.png51 create mode 100644 img/._load9.png52 create mode 100644 img/._myplane1.png53 create mode 100644 img/._myplane1boom1.png54 create mode 100644 img/._myplane1boom2.png55 create mode 100644 img/._myplane1boom3.png56 create mode 100644 img/._myplane1boom4.png57 create mode 100644 img/._myplane1boom5.png58 create mode 100644 img/._myplane1boom6.png59 create mode 100644 img/._myplane1boom7.png60 create mode 100644 img/._myplane1boom8.png61 create mode 100644 img/._myplane1boom9.png62 create mode 100644 img/._myplane2.png63 create mode 100644 img/._myplane3.png64 create mode 100644 img/._planeboss.png65 create mode 100644 img/._starthead.png66 create mode 100644 img/._starting.png67 create mode 100644 img/._warning1.png68 create mode 100644 img/._warning2.png69 create mode 100644 img/bg.jpg70 create mode 100644 img/bg2.jpg71 create mode 100644 img/bigbg.jpg72 create mode 100644 img/bossbullet.png73 create mode 100644 img/bullet.png74 create mode 100644 img/enemy1.png75 create mode 100644 img/enemy1boom1.png76 create mode 100644 img/enemy1boom2.png77 create mode 100644 img/enemy1boom3.png78 create mode 100644 img/enemy1boom4.png79 create mode 100644 img/enemy1boom5.png80 create mode 100644 img/enemy1boom6.png81 create mode 100644 img/enemy2.png82 create mode 100644 img/enemy2boom1.png83 create mode 100644 img/enemy2boom2.png84 create mode 100644 img/enemy2boom3.png85 create mode 100644 img/enemy2boom4.png86 create mode 100644 img/enemy2boom5.png87 create mode 100644 img/enemy2boom6.png88 create mode 100644 img/enemy3.png89 create mode 100644 img/enemy3boom1.png90 create mode 100644 img/enemy3boom2.png91 create mode 100644 img/enemy3boom3.png92 create mode 100644 img/enemy3boom4.png93 create mode 100644 img/enemy3boom5.png94 create mode 100644 img/enemy3boom6.png95 create mode 100644 img/enemy4.png96 create mode 100644 img/enemy4boom1.png97 create mode 100644 img/enemy4boom2.png98 create mode 100644 img/enemy4boom3.png99 create mode 100644 img/enemy4boom4.png100 create mode 100644 img/enemy4boom5.png101 create mode 100644 img/enemy4boom6.png102 create mode 100644 img/load1.png103 create mode 100644 img/load2.png104 create mode 100644 img/load3.png105 create mode 100644 img/load4.png106 create mode 100644 img/load5.png107 create mode 100644 img/load6.png108 create mode 100644 img/load7.png109 create mode 100644 img/load8.png110 create mode 100644 img/load9.png111 create mode 100644 img/myplane1.png112 create mode 100644 img/myplane1boom1.png113 create mode 100644 img/myplane1boom2.png114 create mode 100644 img/myplane1boom3.png115 create mode 100644 img/myplane1boom4.png116 create mode 100644 img/myplane1boom5.png117 create mode 100644 img/myplane1boom6.png118 create mode 100644 img/myplane1boom7.png119 create mode 100644 img/myplane1boom8.png120 create mode 100644 img/myplane1boom9.png121 create mode 100644 img/myplane2.png122 create mode 100644 img/myplane3.png123 create mode 100644 img/planeboss.png124 create mode 100644 img/starthead.png125 create mode 100644 img/starting.png126 create mode 100644 img/warning1.png127 create mode 100644 img/warning2.png128 create mode 100644index.html129 create mode 100644 js/.DS_Store130 create mode 100644 js/._.DS_Store131 create mode 100644 js/._index.js132 create mode 100644 js/index.js133 [root@k8s-node3 feiji]# git push -u origin master134 Username for 'http://192.168.110.135': root135 Password for 'http://root@192.168.110.135':136 Counting objects: 120, done.137 Delta compression using up to 2threads.138 Compressing objects: 100% (120/120), done.139 Writing objects: 100% (120/120), 2.13 MiB | 0 bytes/s, done.140 Total 120 (delta 53), reused 0 (delta 0)141 remote: Resolving deltas: 100% (53/53), done.142 To http://192.168.110.135/root/feiji.git

143 * [new branch] master ->master144 Branch master set up to track remote branch master fromorigin.145 [root@k8s-node3 feiji]#

此时,在界面刷新一下项目,如下所示:

4、安装jenkins并拉取代码,需要首先安装jdk,然后安装tomcat,最后安装jenkins的。

首先安装jdk,最好去官方下载吧,根据自己需要的版本,如果官方下载慢(Oracle官方需要登录的哦!),可以找个资源然后上传到自己的服务器上,自己根据需要进行选择即可。

1 [root@k8s-node2 package]# rpm -ivh jdk-8u251-linux-x64.rpm2 warning: jdk-8u251-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY3 Preparing... ################################# [100%]4 Updating /installing...5 1:jdk1.8-2000:1.8.0_251-fcs ################################# [100%]6 Unpacking JAR files...7 tools.jar...8 plugin.jar...9 javaws.jar...10 deploy.jar...11 rt.jar...12 jsse.jar...13 charsets.jar...14 localedata.jar...15 [root@k8s-node2 package]# java -version16 openjdk version "1.8.0_181"

17 OpenJDK Runtime Environment (build 1.8.0_181-b13)18 OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)19 [root@k8s-node2 package]#

安装tomcat也是可以通过命令下载或者下载好上传的方式,tomcat官网8.x下载:https://tomcat.apache.org/download-80.cgi。

这里通过wget下载了tomcat,然后进行解压缩操作即可。

1 [root@k8s-node2 package]# ls2 jdk-8u251-linux-x64.rpm3 [root@k8s-node2 package]# wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.56/bin/apache-tomcat-8.5.56.tar.gz

4 --2020-07-02 11:38:35-- https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.56/bin/apache-tomcat-8.5.56.tar.gz

5 Resolving mirrors.bfsu.edu.cn (mirrors.bfsu.edu.cn)... 39.155.141.16, 2001:da8:20f:4435:4adf:37ff:fe55:2840

6 Connecting to mirrors.bfsu.edu.cn (mirrors.bfsu.edu.cn)|39.155.141.16|:443... connected.7 HTTP request sent, awaiting response... 200OK8 Length: 10377460 (9.9M) [application/octet-stream]9 Saving to: ‘apache-tomcat-8.5.56.tar.gz’10

11 100%[=======================================================================================================================================================================>] 10,377,460 2.81MB/s in 3.5s12

13 2020-07-02 11:38:38 (2.81 MB/s) - ‘apache-tomcat-8.5.56.tar.gz’ saved [10377460/10377460]14

15 [root@k8s-node2 package]# ls16 apache-tomcat-8.5.56.tar.gz jdk-8u251-linux-x64.rpm17 [root@k8s-node2 package]# ll18 total 185404

19 -rw-r--r-- 1 root root 10377460 Jun 4 04:43 apache-tomcat-8.5.56.tar.gz20 -rw-r--r-- 1 root root 179472367 Jul 2 11:35 jdk-8u251-linux-x64.rpm21 [root@k8s-node2 package]#

下载好就可以进行安装了,如下所示:

1 [root@k8s-node2 package]# tar -zxvf apache-tomcat-8.5.56.tar.gz -C /app2 tar: /app: Cannot open: No such file or directory3 tar: Error isnot recoverable: exiting now4 [root@k8s-node2 package]# mkdir /app5 [root@k8s-node2 package]# ls6 apache-tomcat-8.5.56.tar.gz jdk-8u251-linux-x64.rpm7 [root@k8s-node2 package]# ll8 total 185404

9 -rw-r--r-- 1 root root 10377460 Jun 4 04:43 apache-tomcat-8.5.56.tar.gz10 -rw-r--r-- 1 root root 179472367 Jul 2 11:35 jdk-8u251-linux-x64.rpm11 [root@k8s-node2 package]# tar -zxvf apache-tomcat-8.5.56.tar.gz -C /app

开始下载和安装jenkins,jenkins官方下载地址:https://www.jenkins.io/download/,如下所示:

安装和启动Jenkins的方式有很多,比如常见的有 Java方式启动、Tomcat启动、Docker启动等,我在这里主要介绍下通过Tomcat的方式启动。

首先将tomcat的webapp目录下面的默认站点目录删除掉,如下所示:

1 [root@k8s-node2 package]# ls2 apache-tomcat-8.5.56.tar.gz jdk-8u251-linux-x64.rpm3 [root@k8s-node2 package]# ls4 apache-tomcat-8.5.56.tar.gz jdk-8u251-linux-x64.rpm5 [root@k8s-node2 package]# cd /app/apache-tomcat-8.5.56/webapps/

6 [root@k8s-node2 webapps]# ls7 docs examples host-manager manager ROOT8 [root@k8s-node2 webapps]# rm -rf *

9 [root@k8s-node2 webapps]# ls10 [root@k8s-node2 webapps]#

然后将上传到服务器的jenkins.war复制到tomcat的webapp目录下面。

1 [root@k8s-node2 webapps]# cp ~/package/jenkins.war .2 [root@k8s-node2 webapps]# ls3 jenkins.war4 [root@k8s-node2 webapps]#

此时,启动tomcat,如下所示:

1 [root@k8s-node2 webapps]# cd /app/

2 [root@k8s-node2 app]# ls3 apache-tomcat-8.5.56

4 [root@k8s-node2 app]# cd apache-tomcat-8.5.56/

5 [root@k8s-node2 apache-tomcat-8.5.56]# ls6 bin BUILDING.txt conf CONTRIBUTING.md lib LICENSE logs NOTICE README.md RELEASE-NOTES RUNNING.txt temp webapps work7 [root@k8s-node2 apache-tomcat-8.5.56]# cd bin/

8 [root@k8s-node2 bin]# ls9 bootstrap.jar catalina-tasks.xml commons-daemon.jar configtest.sh digest.sh shutdown.bat startup.sh tool-wrapper.bat version.sh10 catalina.bat ciphers.bat commons-daemon-native.tar.gz daemon.sh setclasspath.bat shutdown.sh tomcat-juli.jar tool-wrapper.sh11 catalina.sh ciphers.sh configtest.bat digest.bat setclasspath.sh startup.bat tomcat-native.tar.gz version.bat12 [root@k8s-node2 bin]# ./startup.sh13 Using CATALINA_BASE: /app/apache-tomcat-8.5.56

14 Using CATALINA_HOME: /app/apache-tomcat-8.5.56

15 Using CATALINA_TMPDIR: /app/apache-tomcat-8.5.56/temp16 Using JRE_HOME: /usr17 Using CLASSPATH: /app/apache-tomcat-8.5.56/bin/bootstrap.jar:/app/apache-tomcat-8.5.56/bin/tomcat-juli.jar18 Tomcat started.19 [root@k8s-node2 bin]#

查看8080的端口号,如下所示:

1 [root@k8s-node2 bin]# netstat -lntup2 Active Internet connections (only servers)3 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name4 tcp 0 0 0.0.0.0:24007 0.0.0.0:* LISTEN 46232/glusterd5 tcp 0 0 127.0.0.1:10248 0.0.0.0:* LISTEN 14838/kubelet6 tcp 0 0 127.0.0.1:10249 0.0.0.0:* LISTEN 6803/kube-proxy7 tcp 0 0 192.168.110.134:10250 0.0.0.0:* LISTEN 14838/kubelet8 tcp 0 0 0.0.0.0:42863 0.0.0.0:* LISTEN -

9 tcp 0 0 192.168.110.134:10255 0.0.0.0:* LISTEN 14838/kubelet10 tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd11 tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 89395/rpc.mountd12 tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 7030/X13 tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 7281/dnsmasq14 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6804/sshd15 tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 6806/cupsd16 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 7142/master17 tcp 0 0 0.0.0.0:34587 0.0.0.0:* LISTEN 71097/rpc.statd18 tcp 0 0 0.0.0.0:49152 0.0.0.0:* LISTEN 62108/glusterfsd19 tcp 0 0 0.0.0.0:49153 0.0.0.0:* LISTEN 62128/glusterfsd20 tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -

21 tcp6 0 0 :::5000 :::* LISTEN 14488/docker-proxy-

22 tcp6 0 0 :::45450 :::* LISTEN -

23 tcp6 0 0 :::60684 :::* LISTEN 71097/rpc.statd24 tcp6 0 0 :::111 :::* LISTEN 1/systemd25 tcp6 0 0 :::20048 :::* LISTEN 89395/rpc.mountd26 tcp6 0 0 :::30000 :::* LISTEN 6803/kube-proxy27 tcp6 0 0 :::8080 :::* LISTEN 14838/kubelet28 tcp6 0 0 :::6000 :::* LISTEN 7030/X29 tcp6 0 0 :::22 :::* LISTEN 6804/sshd30 tcp6 0 0 ::1:631 :::* LISTEN 6806/cupsd31 tcp6 0 0 ::1:25 :::* LISTEN 7142/master32 tcp6 0 0 :::2049 :::* LISTEN -

33 tcp6 0 0 127.0.0.1:8005 :::* LISTEN 23457/java34 udp 0 0 0.0.0.0:5353 0.0.0.0:* 6442/avahi-daemon:35 udp 0 0 0.0.0.0:44601 0.0.0.0:* -

36 udp 0 0 0.0.0.0:52808 0.0.0.0:* 6442/avahi-daemon:37 udp 0 0 0.0.0.0:20048 0.0.0.0:* 89395/rpc.mountd38 udp 0 0 0.0.0.0:58973 0.0.0.0:* 71097/rpc.statd39 udp 0 0 0.0.0.0:2049 0.0.0.0:* -

40 udp 0 0 192.168.122.1:53 0.0.0.0:* 7281/dnsmasq41 udp 0 0 0.0.0.0:67 0.0.0.0:* 7281/dnsmasq42 udp 0 0 192.168.110.134:8285 0.0.0.0:* 6810/flanneld43 udp 0 0 0.0.0.0:111 0.0.0.0:* 1/systemd44 udp 0 0 0.0.0.0:829 0.0.0.0:* 89270/rpcbind45 udp 0 0 127.0.0.1:889 0.0.0.0:* 71097/rpc.statd46 udp6 0 0 :::20048 :::* 89395/rpc.mountd47 udp6 0 0 :::2049 :::* -

48 udp6 0 0 :::111 :::* 1/systemd49 udp6 0 0 :::43464 :::* -

50 udp6 0 0 :::54072 :::* 71097/rpc.statd51 udp6 0 0 :::829 :::* 89270/rpcbind

由于之前将两个Node节点的CAdvisor启动起来了,占用了8080端口,现在关闭一下,如下所示:

1 [root@k8s-node2 apache-tomcat-8.5.56]# vim /etc/kubernetes/kubelet2 [root@k8s-node2 apache-tomcat-8.5.56]#

然后重启kubelet服务,如下所示:

1 [root@k8s-node2 apache-tomcat-8.5.56]# systemctl restart kubelet.service2 [root@k8s-node2 apache-tomcat-8.5.56]#

重启之后,查看8080端口号是开启了什么服务,发现没有了8080端口号了,此时我将tomcat关闭,然后重启,如下所示:

1 [root@k8s-node2 bin]# ./shutdown.sh2 Using CATALINA_BASE: /app/apache-tomcat-8.5.56

3 Using CATALINA_HOME: /app/apache-tomcat-8.5.56

4 Using CATALINA_TMPDIR: /app/apache-tomcat-8.5.56/temp5 Using JRE_HOME: /usr6 Using CLASSPATH: /app/apache-tomcat-8.5.56/bin/bootstrap.jar:/app/apache-tomcat-8.5.56/bin/tomcat-juli.jar7 [root@k8s-node2 bin]# ./startup.sh8 Using CATALINA_BASE: /app/apache-tomcat-8.5.56

9 Using CATALINA_HOME: /app/apache-tomcat-8.5.56

10 Using CATALINA_TMPDIR: /app/apache-tomcat-8.5.56/temp11 Using JRE_HOME: /usr12 Using CLASSPATH: /app/apache-tomcat-8.5.56/bin/bootstrap.jar:/app/apache-tomcat-8.5.56/bin/tomcat-juli.jar13 Tomcat started.14 [root@k8s-node2 bin]# cd ../logs/

15 [root@k8s-node2 logs]# tailf catalina.out

16 02-Jul-2020 12:21:37.758 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/app/apache-tomcat-8.5.56

17 02-Jul-2020 12:21:37.759 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/app/apache-tomcat-8.5.56/temp18 02-Jul-2020 12:21:37.759 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]19 02-Jul-2020 12:21:37.883 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]20 02-Jul-2020 12:21:37.898 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read21 02-Jul-2020 12:21:37.925 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 877ms22 02-Jul-2020 12:21:37.957INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]23 02-Jul-2020 12:21:37.957 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.56

24 02-Jul-2020 12:21:37.990 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/app/apache-tomcat-8.5.56/webapps/jenkins.war]25 02-Jul-2020 12:21:41.900 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found inthem. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.26 02-Jul-2020 12:21:42.339 INFO [localhost-startStop-1] hudson.WebAppMain.contextInitialized Jenkins home directory: /root/.jenkins found at: $user.home/.jenkins27 02-Jul-2020 12:21:42.573 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/app/apache-tomcat-8.5.56/webapps/jenkins.war] has finished in [4,582] ms28 02-Jul-2020 12:21:42.588 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]29 02-Jul-2020 12:21:42.673 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 4747ms30 02-Jul-2020 12:21:44.841 INFO [pool-6-thread-3] jenkins.InitReactorRunner$1.onAttained Started initialization31 02-Jul-2020 12:21:44.976 INFO [pool-6-thread-2] jenkins.InitReactorRunner$1.onAttained Listed all plugins32 02-Jul-2020 12:21:46.758 INFO [pool-6-thread-4] jenkins.InitReactorRunner$1.onAttained Prepared all plugins33 02-Jul-2020 12:21:46.774 INFO [pool-6-thread-3] jenkins.InitReactorRunner$1.onAttained Started all plugins34 02-Jul-2020 12:21:46.819 INFO [pool-6-thread-2] jenkins.InitReactorRunner$1.onAttained Augmented all extensions35 02-Jul-2020 12:21:47.308 INFO [pool-6-thread-2] jenkins.InitReactorRunner$1.onAttained System config loaded36 02-Jul-2020 12:21:47.309 INFO [pool-6-thread-2] jenkins.InitReactorRunner$1.onAttained System config adapted37 02-Jul-2020 12:21:47.309 INFO [pool-6-thread-2] jenkins.InitReactorRunner$1.onAttained Loaded all jobs38 02-Jul-2020 12:21:47.311 INFO [pool-6-thread-4] jenkins.InitReactorRunner$1.onAttained Configuration forall jobs updated39 02-Jul-2020 12:21:47.330 INFO [Download metadata thread] hudson.model.AsyncPeriodicWork.lambda$doRun$0Started Download metadata40 02-Jul-2020 12:21:48.561 INFO [Finalizing set up] org.springframework.context.support.AbstractApplicationContext.prepareRefresh Refreshing org.springframework.web.context.support.StaticWebApplicationContext@22ea1775: display name [Root WebApplicationContext]; startup date [Thu Jul 02 12:21:48 CST 2020]; root of context hierarchy41 02-Jul-2020 12:21:48.561 INFO [Finalizing set up] org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory Bean factory forapplication context [org.springframework.web.context.support.StaticWebApplicationContext@22ea1775]: org.springframework.beans.factory.support.DefaultListableBeanFactory@776ad75c42 02-Jul-2020 12:21:48.575 INFO [Finalizing set up] org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons Pre-instantiating singletons inorg.springframework.beans.factory.support.DefaultListableBeanFactory@776ad75c: defining beans [authenticationManager]; root of factory hierarchy43 02-Jul-2020 12:21:48.907 INFO [Finalizing set up] org.springframework.context.support.AbstractApplicationContext.prepareRefresh Refreshing org.springframework.web.context.support.StaticWebApplicationContext@3cd7b623: display name [Root WebApplicationContext]; startup date [Thu Jul 02 12:21:48 CST 2020]; root of context hierarchy44 02-Jul-2020 12:21:48.907 INFO [Finalizing set up] org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory Bean factory forapplication context [org.springframework.web.context.support.StaticWebApplicationContext@3cd7b623]: org.springframework.beans.factory.support.DefaultListableBeanFactory@2c58a5c245 02-Jul-2020 12:21:48.908 INFO [Finalizing set up] org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons Pre-instantiating singletons inorg.springframework.beans.factory.support.DefaultListableBeanFactory@2c58a5c2: defining beans [filter,legacy]; root of factory hierarchy46 02-Jul-2020 12:21:49.014 INFO [pool-6-thread-1] jenkins.InitReactorRunner$1.onAttained Completed initialization47 02-Jul-2020 12:21:49.039 INFO [Jenkins initialization thread] hudson.WebAppMain$3.run Jenkins isfully up and running48 02-Jul-2020 12:21:50.040 INFO [Download metadata thread] hudson.model.DownloadService$Downloadable.load Obtained the updated data file forhudson.tasks.Maven.MavenInstaller49 02-Jul-2020 12:21:50.041 INFO [Download metadata thread] hudson.model.AsyncPeriodicWork.lambda$doRun$0 Finished Download metadata. 2,693ms50 ^C51 [root@k8s-node2 logs]#

此时,查看端口号,如下所示:

1 [root@k8s-node2 logs]# netstat -lntup2 Active Internet connections (only servers)3 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name4 tcp 0 0 0.0.0.0:24007 0.0.0.0:* LISTEN 46232/glusterd5 tcp 0 0 127.0.0.1:10248 0.0.0.0:* LISTEN 30748/kubelet6 tcp 0 0 127.0.0.1:10249 0.0.0.0:* LISTEN 6803/kube-proxy7 tcp 0 0 192.168.110.134:10250 0.0.0.0:* LISTEN 30748/kubelet8 tcp 0 0 192.168.110.134:10255 0.0.0.0:* LISTEN 30748/kubelet9 tcp 0 0 0.0.0.0:42863 0.0.0.0:* LISTEN -

10 tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd11 tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 89395/rpc.mountd12 tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 7030/X13 tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 7281/dnsmasq14 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6804/sshd15 tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 6806/cupsd16 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 7142/master17 tcp 0 0 0.0.0.0:34587 0.0.0.0:* LISTEN 71097/rpc.statd18 tcp 0 0 0.0.0.0:49152 0.0.0.0:* LISTEN 62108/glusterfsd19 tcp 0 0 0.0.0.0:49153 0.0.0.0:* LISTEN 62128/glusterfsd20 tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -

21 tcp6 0 0 :::5000 :::* LISTEN 14488/docker-proxy-

22 tcp6 0 0 :::45450 :::* LISTEN -

23 tcp6 0 0 :::60684 :::* LISTEN 71097/rpc.statd24 tcp6 0 0 :::111 :::* LISTEN 1/systemd25 tcp6 0 0 :::8080 :::* LISTEN 32474/java26 tcp6 0 0 :::20048 :::* LISTEN 89395/rpc.mountd27 tcp6 0 0 :::30000 :::* LISTEN 6803/kube-proxy28 tcp6 0 0 :::6000 :::* LISTEN 7030/X29 tcp6 0 0 :::22 :::* LISTEN 6804/sshd30 tcp6 0 0 ::1:631 :::* LISTEN 6806/cupsd31 tcp6 0 0 ::1:25 :::* LISTEN 7142/master32 tcp6 0 0 :::2049 :::* LISTEN -

33 tcp6 0 0 :::4194 :::* LISTEN 30748/kubelet34 tcp6 0 0 127.0.0.1:8005 :::* LISTEN 32474/java35 udp 0 0 0.0.0.0:5353 0.0.0.0:* 6442/avahi-daemon:36 udp 0 0 0.0.0.0:44601 0.0.0.0:* -

37 udp 0 0 0.0.0.0:52808 0.0.0.0:* 6442/avahi-daemon:38 udp 0 0 0.0.0.0:20048 0.0.0.0:* 89395/rpc.mountd39 udp 0 0 0.0.0.0:58973 0.0.0.0:* 71097/rpc.statd40 udp 0 0 0.0.0.0:2049 0.0.0.0:* -

41 udp 0 0 192.168.122.1:53 0.0.0.0:* 7281/dnsmasq42 udp 0 0 0.0.0.0:67 0.0.0.0:* 7281/dnsmasq43 udp 0 0 192.168.110.134:8285 0.0.0.0:* 6810/flanneld44 udp 0 0 0.0.0.0:111 0.0.0.0:* 1/systemd45 udp 0 0 0.0.0.0:829 0.0.0.0:* 89270/rpcbind46 udp 0 0 127.0.0.1:889 0.0.0.0:* 71097/rpc.statd47 udp6 0 0 :::20048 :::* 89395/rpc.mountd48 udp6 0 0 :::2049 :::* -

49 udp6 0 0 :::111 :::* 1/systemd50 udp6 0 0 :::43464 :::* -

51 udp6 0 0 :::54072 :::* 71097/rpc.statd52 udp6 0 0 :::829 :::* 89270/rpcbind53 [root@k8s-node2 logs]#

访问地址http://192.168.110.134:8080/,报错了,老问题了,但是呢,这次是我没有将jenkins.war解压缩正确导致的。

这次我将刚才解压缩的jenkins.war包和解压缩后的文件删除掉,如下所示:

1 [root@k8s-node2 webapps]# ls2 jenkins jenkins.war3 [root@k8s-node2 webapps]# rm -rf *

4 [root@k8s-node2 webapps]# ls

然后执行关闭tomcat命令,如下所示:

1 [root@k8s-node2 bin]# ./shutdown.sh2 Using CATALINA_BASE: /app/apache-tomcat-8.5.56

3 Using CATALINA_HOME: /app/apache-tomcat-8.5.56

4 Using CATALINA_TMPDIR: /app/apache-tomcat-8.5.56/temp5 Using JRE_HOME: /usr6 Using CLASSPATH: /app/apache-tomcat-8.5.56/bin/bootstrap.jar:/app/apache-tomcat-8.5.56/bin/tomcat-juli.jar

最后使用下面的拷贝方式,将jenkins.war包改成了ROOT.war放到webapp目录下面。

1 [root@k8s-node2 webapps]# cd ~/package/

2 [root@k8s-node2 package]# ls3 apache-tomcat-8.5.56 apache-tomcat-8.5.56.tar.gz jdk-8u251-linux-x64.rpm jenkins.war4 [root@k8s-node2 package]# cp jenkins.war /app/apache-tomcat-8.5.56/webapps/ROOT.war5 [root@k8s-node2 package]#

查看拷贝后的webapp目录下面的文件,如下所示:

[root@k8s-node2 webapps]# ls

ROOT.war

[root@k8s-node2 webapps]# ls

ROOT ROOT.war

[root@k8s-node2 webapps]#

启动tomcat并查看日志,并查看端口号,如下所示:

1 [root@k8s-node2 bin]# ./startup.sh2 Using CATALINA_BASE: /app/apache-tomcat-8.5.56

3 Using CATALINA_HOME: /app/apache-tomcat-8.5.56

4 Using CATALINA_TMPDIR: /app/apache-tomcat-8.5.56/temp5 Using JRE_HOME: /usr6 Using CLASSPATH: /app/apache-tomcat-8.5.56/bin/bootstrap.jar:/app/apache-tomcat-8.5.56/bin/tomcat-juli.jar7 Tomcat started.8 [root@k8s-node2 bin]# cd ../logs/

9 [root@k8s-node2 logs]# tailf catalina.out

10 02-Jul-2020 12:32:04.341 WARNING [http-nio-8080-exec-2] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/help/user/fullName_pt_BR.html] to the cache for web application [] because there was insufficient free space available after evicting expired cache entries -consider increasing the maximum size of the cache11 02-Jul-2020 12:32:04.341 WARNING [http-nio-8080-exec-2] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/help/user/description_de.html] to the cache for web application [] because there was insufficient free space available after evicting expired cache entries -consider increasing the maximum size of the cache12 02-Jul-2020 12:32:04.341 WARNING [http-nio-8080-exec-2] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/help/user/fullName.html] to the cache for web application [] because there was insufficient free space available after evicting expired cache entries -consider increasing the maximum size of the cache13 02-Jul-2020 12:32:04.341 WARNING [http-nio-8080-exec-2] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/help/user/description_ru.html] to the cache for web application [] because there was insufficient free space available after evicting expired cache entries -consider increasing the maximum size of the cache14 02-Jul-2020 12:32:04.342 WARNING [http-nio-8080-exec-2] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/help/user/fullName_it.html] to the cache for web application [] because there was insufficient free space available after evicting expired cache entries -consider increasing the maximum size of the cache15 02-Jul-2020 12:32:04.342 WARNING [http-nio-8080-exec-2] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/bootstrap/config.json] to the cache for web application [] because there was insufficient free space available after evicting expired cache entries -consider increasing the maximum size of the cache16 02-Jul-2020 12:32:04.342 WARNING [http-nio-8080-exec-2] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/bootstrap/css/bootstrap.min.css] to the cache for web application [] because there was insufficient free space available after evicting expired cache entries -consider increasing the maximum size of the cache17 02-Jul-2020 12:32:04.343 WARNING [http-nio-8080-exec-2] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/bootstrap/css/bootstrap.css] to the cache for web application [] because there was insufficient free space available after evicting expired cache entries -consider increasing the maximum size of the cache18 02-Jul-2020 12:32:04.343 WARNING [http-nio-8080-exec-2] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/bootstrap/css/bootstrap-theme.css] to the cache for web application [] because there was insufficient free space available after evicting expired cache entries -consider increasing the maximum size of the cache19 02-Jul-2020 12:32:04.343 WARNING [http-nio-8080-exec-2] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/bootstrap/css/bootstrap-theme.min.css] to the cache for web application [] because there was insufficient free space available after evicting expired cache entries -consider increasing the maximum size of the cache20 02-Jul-2020 12:32:05.779 INFO [pool-6-thread-3] jenkins.InitReactorRunner$1.onAttained Started initialization21 02-Jul-2020 12:32:05.871 INFO [pool-6-thread-1] jenkins.InitReactorRunner$1.onAttained Listed all plugins22 02-Jul-2020 12:32:07.634 INFO [pool-6-thread-2] jenkins.InitReactorRunner$1.onAttained Prepared all plugins23 02-Jul-2020 12:32:07.639 INFO [pool-6-thread-2] jenkins.InitReactorRunner$1.onAttained Started all plugins24 02-Jul-2020 12:32:07.667 INFO [pool-6-thread-1] jenkins.InitReactorRunner$1.onAttained Augmented all extensions25 02-Jul-2020 12:32:08.103 INFO [pool-6-thread-1] jenkins.InitReactorRunner$1.onAttained System config loaded26 02-Jul-2020 12:32:08.103 INFO [pool-6-thread-1] jenkins.InitReactorRunner$1.onAttained System config adapted27 02-Jul-2020 12:32:08.103 INFO [pool-6-thread-1] jenkins.InitReactorRunner$1.onAttained Loaded all jobs28 02-Jul-2020 12:32:08.105 INFO [pool-6-thread-2] jenkins.InitReactorRunner$1.onAttained Configuration forall jobs updated29 02-Jul-2020 12:32:08.155 INFO [Download metadata thread] hudson.model.AsyncPeriodicWork.lambda$doRun$0Started Download metadata30 02-Jul-2020 12:32:08.171 INFO [Download metadata thread] hudson.model.AsyncPeriodicWork.lambda$doRun$0 Finished Download metadata. 3ms31 02-Jul-2020 12:32:09.264 INFO [Finalizing set up] org.springframework.context.support.AbstractApplicationContext.prepareRefresh Refreshing org.springframework.web.context.support.StaticWebApplicationContext@6a8c7465: display name [Root WebApplicationContext]; startup date [Thu Jul 02 12:32:09 CST 2020]; root of context hierarchy32 02-Jul-2020 12:32:09.264 INFO [Finalizing set up] org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory Bean factory forapplication context [org.springframework.web.context.support.StaticWebApplicationContext@6a8c7465]: org.springframework.beans.factory.support.DefaultListableBeanFactory@3f36fb0033 02-Jul-2020 12:32:09.276 INFO [Finalizing set up] org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons Pre-instantiating singletons inorg.springframework.beans.factory.support.DefaultListableBeanFactory@3f36fb00: defining beans [authenticationManager]; root of factory hierarchy34 02-Jul-2020 12:32:09.641 INFO [Finalizing set up] org.springframework.context.support.AbstractApplicationContext.prepareRefresh Refreshing org.springframework.web.context.support.StaticWebApplicationContext@5b72f3ef: display name [Root WebApplicationContext]; startup date [Thu Jul 02 12:32:09 CST 2020]; root of context hierarchy35 02-Jul-2020 12:32:09.642 INFO [Finalizing set up] org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory Bean factory forapplication context [org.springframework.web.context.support.StaticWebApplicationContext@5b72f3ef]: org.springframework.beans.factory.support.DefaultListableBeanFactory@7af1238d36 02-Jul-2020 12:32:09.642 INFO [Finalizing set up] org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons Pre-instantiating singletons inorg.springframework.beans.factory.support.DefaultListableBeanFactory@7af1238d: defining beans [filter,legacy]; root of factory hierarchy37 02-Jul-2020 12:32:09.711 INFO [pool-6-thread-3] jenkins.InitReactorRunner$1.onAttained Completed initialization38 02-Jul-2020 12:32:09.732 INFO [Jenkins initialization thread] hudson.WebAppMain$3.run Jenkins isfully up and running39 02-Jul-2020 12:32:13.581 INFO [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.webresources.Cache.backgroundProcess The background cache eviction process was unable to free [10] percent of the cache for Context [] - consider increasing the maximum size of the cache. After eviction approximately [9,361] KB of data remained inthe cache.40 ^C41 [root@k8s-node2 logs]# netstat -nlutp42 Active Internet connections (only servers)43 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name44 tcp 0 0 0.0.0.0:24007 0.0.0.0:* LISTEN 46232/glusterd45 tcp 0 0 127.0.0.1:10248 0.0.0.0:* LISTEN 30748/kubelet46 tcp 0 0 127.0.0.1:10249 0.0.0.0:* LISTEN 6803/kube-proxy47 tcp 0 0 192.168.110.134:10250 0.0.0.0:* LISTEN 30748/kubelet48 tcp 0 0 192.168.110.134:10255 0.0.0.0:* LISTEN 30748/kubelet49 tcp 0 0 0.0.0.0:42863 0.0.0.0:* LISTEN -

50 tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd51 tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 89395/rpc.mountd52 tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 7030/X53 tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 7281/dnsmasq54 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6804/sshd55 tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 6806/cupsd56 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 7142/master57 tcp 0 0 0.0.0.0:34587 0.0.0.0:* LISTEN 71097/rpc.statd58 tcp 0 0 0.0.0.0:49152 0.0.0.0:* LISTEN 62108/glusterfsd59 tcp 0 0 0.0.0.0:49153 0.0.0.0:* LISTEN 62128/glusterfsd60 tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -

61 tcp6 0 0 :::5000 :::* LISTEN 14488/docker-proxy-

62 tcp6 0 0 :::45450 :::* LISTEN -

63 tcp6 0 0 :::60684 :::* LISTEN 71097/rpc.statd64 tcp6 0 0 :::111 :::* LISTEN 1/systemd65 tcp6 0 0 :::8080 :::* LISTEN 39956/java66 tcp6 0 0 :::20048 :::* LISTEN 89395/rpc.mountd67 tcp6 0 0 :::30000 :::* LISTEN 6803/kube-proxy68 tcp6 0 0 :::6000 :::* LISTEN 7030/X69 tcp6 0 0 :::22 :::* LISTEN 6804/sshd70 tcp6 0 0 ::1:631 :::* LISTEN 6806/cupsd71 tcp6 0 0 ::1:25 :::* LISTEN 7142/master72 tcp6 0 0 :::2049 :::* LISTEN -

73 tcp6 0 0 :::4194 :::* LISTEN 30748/kubelet74 tcp6 0 0 127.0.0.1:8005 :::* LISTEN 39956/java75 udp 0 0 0.0.0.0:5353 0.0.0.0:* 6442/avahi-daemon:76 udp 0 0 0.0.0.0:44601 0.0.0.0:* -

77 udp 0 0 0.0.0.0:52808 0.0.0.0:* 6442/avahi-daemon:78 udp 0 0 0.0.0.0:20048 0.0.0.0:* 89395/rpc.mountd79 udp 0 0 0.0.0.0:58973 0.0.0.0:* 71097/rpc.statd80 udp 0 0 0.0.0.0:2049 0.0.0.0:* -

81 udp 0 0 192.168.122.1:53 0.0.0.0:* 7281/dnsmasq82 udp 0 0 0.0.0.0:67 0.0.0.0:* 7281/dnsmasq83 udp 0 0 192.168.110.134:8285 0.0.0.0:* 6810/flanneld84 udp 0 0 0.0.0.0:111 0.0.0.0:* 1/systemd85 udp 0 0 0.0.0.0:829 0.0.0.0:* 89270/rpcbind86 udp 0 0 127.0.0.1:889 0.0.0.0:* 71097/rpc.statd87 udp6 0 0 :::20048 :::* 89395/rpc.mountd88 udp6 0 0 :::2049 :::* -

89 udp6 0 0 :::111 :::* 1/systemd90 udp6 0 0 :::43464 :::* -

91 udp6 0 0 :::54072 :::* 71097/rpc.statd92 udp6 0 0 :::829 :::* 89270/rpcbind93 [root@k8s-node2 logs]#

如果之前安装过Jenkins,可以将之前安装过的/root/.jenkins/,放置到这个目录/root目录下面,减少安装时间。如果没有安装过程,这里执行上面的步骤即可。

根据界面的提示,到路径 /root/.jenkins/secrets/initialAdminPassword 下找出密码,然后复制填入即可。

1 [root@k8s-node2 package]# cat /root/.jenkins/secrets/initialAdminPassword2 1ddc1bf154b24b34bd20a10d36f6c87f3 [root@k8s-node2 package]#

点击继续,出现下面的步骤,如下所示:

选择左侧安装推荐的插件,等待安装即可,出现下面的界面。

注意:安装插件有时下载速度奇慢,导致可能出现安装失败的情况,建议大家参考网上的这篇博客:https://www.cnblogs.com/hellxz/p/jenkins_install_plugins_faster.html。 我一开始没有使用,但是安装失败了,算了,还是抓紧搞一下。

default.json其实在Jenkins的工作目录中,其实就是在/root/.jenkins/updates/default.json,如下所示:

1 [root@k8s-node2 .jenkins]# cd ~

2 [root@k8s-node2 ~]# cd /root/.jenkins/

3 [root@k8s-node2 .jenkins]#4 [root@k8s-node2 .jenkins]# ls5 config.xml identity.key.enc jenkins.install.UpgradeWizard.state jobs nodeMonitors.xml plugins secret.key secrets userContent6 hudson.model.UpdateCenter.xml jenkins.install.InstallUtil.installingPlugins jenkins.telemetry.Correlator.xml logs nodes queue.xml.bak secret.key.not-so-secret updates users7 [root@k8s-node2 .jenkins]# cd updates/

8 [root@k8s-node2 updates]# ls9 default.json hudson.tasks.Maven.MavenInstaller10 [root@k8s-node2 updates]# pwd11 /root/.jenkins/updates12 [root@k8s-node2 updates]#

这里为了避免搞错了,先备份一下default.json配置文件,方便后来使用。这里使用参考连接里面的第二个方法,第一个再搞错了不好办了。

1 [root@k8s-node2 updates]# sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json2 [root@k8s-node2 updates]#

重启Jenkins,安装插件试试,访问http://192.168.110.134:8080/。输入密钥解锁Jenkins点击继续。

我这里之前没有使用加速安装了,导致有两个安装失败了,其他安装速度很快很快。我这里将之前安装的删除掉了,重新安装试一下,如下所示:

1 [root@k8s-node2 ~]# ll .jenkins/

2 total 52

3 -rw-r----- 1 root root 475 Jul 2 17:36com.cloudbees.hudson.plugins.folder.config.AbstractFolderConfiguration.xml4 -rw-r----- 1 root root 1654 Jul 2 17:39config.xml5 -rw-r----- 1 root root 156 Jul 2 17:36hudson.model.UpdateCenter.xml6 -rw-r----- 1 root root 370 Jul 2 17:39hudson.plugins.git.GitTool.xml7 -rw------- 1 root root 1712 Jul 2 12:09identity.key.enc8 -rw-r----- 1 root root 7 Jul 2 12:09jenkins.install.UpgradeWizard.state9 -rw-r----- 1 root root 171 Jul 2 12:09jenkins.telemetry.Correlator.xml10 drwxr-x--- 2 root root 6 Jul 2 12:09jobs11 drwxr-x--- 3 root root 19 Jul 2 12:09logs12 -rw-r----- 1 root root 907 Jul 2 17:36nodeMonitors.xml13 drwxr-x--- 2 root root 6 Jul 2 12:09nodes14 drwxr-x--- 76 root root 8192 Jul 2 17:39plugins15 -rw-r----- 1 root root 129 Jul 2 17:36queue.xml.bak16 -rw-r----- 1 root root 64 Jul 2 12:09secret.key17 -rw-r----- 1 root root 0 Jul 2 12:09 secret.key.not-so-secret18 drwx------ 4 root root 265 Jul 2 12:09secrets19 drwxr-x--- 2 root root 206 Jul 2 17:39updates20 drwxr-x--- 2 root root 24 Jul 2 12:09userContent21 drwxr-x--- 3 root root 56 Jul 2 12:09users22 drwxr-x--- 2 root root 6 Jul 2 17:39 workflow-libs23 [root@k8s-node2 ~]# ls24 anaconda-ks.cfg Desktop Documents Downloads initial-setup-ks.cfg Music package Pictures Public Templates Videos 桌面25 [root@k8s-node2 ~]# rm -rf .jenkins/

26 [root@k8s-node2 ~]# ll .j27 .java/ .jenkins/

28 [root@k8s-node2 ~]# ll .j29 .java/ .jenkins/

30 [root@k8s-node2 ~]# ll .jenkins/

31 total 4

32 -rw-r----- 1 root root 29 Jul 2 17:42 failed-boot-attempts.txt33 [root@k8s-node2 ~]#

关闭tomcat,然后将tomcat的webapp下面的ROOT删除掉。建议的顺序是首先关闭tomcat,然后将tomcat的webapp下面的ROOT删除掉,然后删除掉rm -rf /root/.jenkins/,不然会有残余文件。重新安装,由于我是将Jenkins的包打成了ROOT的包了,所以直接启动tomcat即可,然后访问http://192.168.110.134:8080。输入密钥解锁Jenkins点击继续。注意:记得修改default.json配置文件哈,不然等会下载还是很慢。

下载安装很快,大概不到一分钟,这里建议直接使用加速安装插件,不然会走弯路的,如下所示:

经历了机器重启,才搞到这一步,所以一定要进行加速安装插件哦,不然瞎折腾。

创建用户登录Jenkins,上面安装完插件之后,需要设置一个管理员用户。

填写信息之后,可以选择使用admin账户继续,也可以直接选择 保存并完成,根据自己情况选择。我这里点击保存并完成,然后出现下面的界面:

点击保存并完成,出现如下界面:

点击开始使用jenkins,如下所示:

在jenkins上创建构建项目,目的就是可以拉取自己在gitlab创建的项目,jenkins想要从gitlab上拉取项目,需要一个凭据,这里生成一个密钥对,如下所示:

1 [root@k8s-node2 ~]# ssh-keygen -t rsa2 Generating public/privatersa key pair.3 Enter file in which to save the key (/root/.ssh/id_rsa):4 Created directory '/root/.ssh'.5 Enter passphrase (empty forno passphrase):6 Enter same passphrase again:7 Your identification has been saved in /root/.ssh/id_rsa.8 Your public key has been saved in /root/.ssh/id_rsa.pub.9 The key fingerprint is:10 SHA256:Adk+pA0k3pYeTdy7rPW8kpG8RiXJsFKCsofEzh0Apqo root@k8s-node211 The key's randomart image is:

12 +---[RSA 2048]----+

13 |.+...oo+.. |

14 |o +.oo+=* . |

15 |.+ =..=Oo+ o |

16 |. = ooo.=.= . |

17 |. . ..S+ = |

18 |. O |

19 |E + * |

20 | . = o |

21 | . ... |

22 +----[SHA256]-----+

23 [root@k8s-node2 ~]#

此时,将公钥复制下来配置到gitlab上面,如下所示:

1 [root@k8s-node2 ~]# cat /root/.ssh/id_rsa.pub2 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDxL6Uzp8DoprShlTJZwtYg3+8/LS+FO+I+Gb8k4I8hRO1Q6nURUtjujgY1pSgS5j3D0XV4Ei4rwEcpNAxMlu7bQmZM1YQ+g7ot/rgBOEsveEYg1bDYiKVjPHQXv6Nulv9F+Cw5mK8NSdxeXmO1OVs42+/SFYzTCuQxBP1/b0tDRKXNIZIUKWbKHF6gpx8mmwkSy342n02AFB4L29S7KbN4U4t05LnL4UYZByAZbUG3YB9YAPs/h7IRrO0vWmbDPKlMqmGLCqYDlO1In4RTshHp05SHhjxM6Y7eYZvGTMG9ev2iJnbkDpclAnEuHZPMm+O56RwGw6HrG9ACR98s8nSJ root@k8s-node23 [root@k8s-node2 ~]#

将公钥配置到gltlab的settings位置,如下所示:

将公钥复制到ssh keys的位置,如下所示:

添加完公钥是这样的,如下所示:

现在开始配置Jenkins的凭据,如果看不到凭据,可以点下右上角的admin哦,如下所示:

然后点击用户,看到全局凭据,点击全局凭据,如下所示:

点击全局凭据,如下所示:

然后点击添加凭据,如下所示:

添加凭据,就是添加私钥,方便拉取 gitlab上面的代码,查看私钥并进行复制,如下所示:

1 [root@k8s-node2 ~]# cat /root/.ssh/id_rsa2 -----BEGIN RSA PRIVATE KEY-----

3 MIIEpAIBAAKCAQEA8S+lM6fA6Ka0oZUyWcLWIN/vPy0vhTviPhm/JOCPIUTtUOp14 EVLY7o4GNaUoEuY9w9F1eBIuK8BHKTQMTJbu20JmTNWEPoO6Lf64AThLL3hGINWw5 2IilYzx0F7+jbpb/RfgsOZivDUncXl5jtTlbONvv0hWM0wrkMQT9f29LQ0SlzSGS6 FClmyhxeoKcfJpsJEst+Np9NgBQeC9vUuymzeFOLdOS5y+FGGQcgGW1Bt2AfWAD77 P4eyEaztL1pmwzypTKphiwqmA5TtSJ+EU7IR6dOUh4Y8TOmO3mGbxkzBvXr9oiZ28 5A6XJQJxLh2TzJvjuekcBsOh6xvQAkffLPJ0iQIDAQABAoIBADcfDoCJvFrvjqTH9 NmSxVMLaqxEjQJMQpppOxBKnh86wtBQkIXE+H/oVV3H3Nvtqx37zZgd1EDxLi3ft10 P0pZzGkr+blhqwGmlWxhpKgSt4w3zr8+V1aFlFbjwByVXcKum9Tf7SuUq5073jNr11 GxqV6zVJfrvi1PZ+rLxPSahQRUEwA6DI3yeokPLP5voJITcbGMSPmUfy4avAk9RP12 /fsjPomYOBKy51zj72Bj88t8g6Qta89ttKYcdaQSJ4VkEJ8fGcNy47w6fQLlwV4y13 kdig4CQVQrKAbTgb3wBh6KPQLfb1ATWGQ7QT1NeEISckobllOIHjG76dan6XfkKr14 1bT5sAkCgYEA/jJko0p8NaKxvgDjymDVf0dqcFbt94VHsXhRibQSzRwOi4spKv7915 aIn/oqbjgzugGA8FIQsL2bBz1KSyN5LHzgegg5G2TAT6XJLHnbmDP0Sp3I2IYwAp16 vGqZ6vARYMDeJI9rML7RbXOaSV9WNdJrPQxo3ilkWxjYXKUkVXtEDIMCgYEA8uWg17 HfxxmY+X2xQwqaVlAZ0FIzZG06CViFou8ygoeceGOjbeOAMVOMnwWDswkwY+TWpA18 qZCoWzmbnp3xirZbnS7gYd5sXIAcoPuCpX8Y5eiDvpy4Sk0bT+95diYJTcpYrup419 7+UM4U22FRZuVqldOl2WKNi80V3nNYXrBrBtRQMCgYBbbZys7tmGISJ1CLTl0bZ420 tSMfjOTCpnmG55PMR6yLgY/puP/xqw1SUHBV/FjQlt2aSay6mdKFVeYTkblYK78Z21 57xgFkTPSusR6OlLXbJLS1MdNPrdQO3CC0WZLwfRGQ3NcJhJTBjfmTjhMx069pgD22 uTbu0Ux7R5BqoitTY6ayKQKBgQDPOHWEf4TO9EEiZzQo1vC4EqR6aOi9zSclH4Mk23 cOMvGbh626pzcLXfL/C65SxIki/+zaICx2XKBfistqSFqZO5Im/NLvuVYrqJ4GiS24 Fj9AjUAwEvXqdaPSa0RdNpADbJiCCYlJaEi3whuQHAXgKzdc/tCHYnibyZfiArEC25 kOt3zwKBgQCy3O4dFyHRxMlbxxd/Kdapa4HjQ/dCcEX5+IqXEGe5e07lKH+UnCtt26 km94rYbS66BppGuBoDbH9t8fmDaXWDkVPxmnMkGsNh1yG99PX5MWAj9qh4BKCnAU27 +hXD4qmYgTCL2CiNjj+Wbk6gIxy16wKn29ARdCseDRGj0AFe6I9itg==

28 -----END RSA PRIVATE KEY-----

29 [root@k8s-node2 ~]#

点击确定之后,如下所示:

此时,在jenkins新建一个任务,如下所示:

点击创建一个新任务,如下所示:

创建一个自由风格的项目,如下所示:

可以写下描述,如下所示:

源码管理,选择git,如下所示:

将gitlab的项目地址复制过来,这里郁闷的是全局凭据无法选择,这里再配置一下吧。

报错了,无法连接仓库:Error performing git command: git ls-remote -h git@192.168.110.135:root/feiji.git HEAD。

解决方法,Jenkins服务器上查看git是否已安装及安装位置。

1 git:[root@k8s-node2 ~]# yum install git2 Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager3

4 This system is not registered with an entitlement server. You can use subscription-manager to register.5

6 Loading mirror speeds fromcached hostfile7 epel/x86_64/metalink | 8.7 kB 00:00:00

8 * base: mirror.bit.edu.cn9 * centos-gluster7: mirrors.huaweicloud.com10 *epel: mirror.lzu.edu.cn11 *extras: mirrors.huaweicloud.com12 *updates: mirrors.huaweicloud.com13 base | 3.6 kB 00:00:00

14 centos-gluster7 | 3.0 kB 00:00:00

15 epel | 4.7 kB 00:00:00

16 extras | 2.9 kB 00:00:00

17 updates | 2.9 kB 00:00:00

18 (1/3): epel/x86_64/updateinfo | 1.0 MB 00:00:00

19 (2/3): epel/x86_64/primary_db | 6.8 MB 00:00:02

20 (3/3): updates/7/x86_64/primary_db | 3.0 MB 00:00:07

21 Resolving Dependencies22 -->Running transaction check23 ---> Package git.x86_64 0:1.8.3.1-23.el7_8 will be installed24 --> Processing Dependency: perl-Git = 1.8.3.1-23.el7_8 for package: git-1.8.3.1-23.el7_8.x86_6425 --> Processing Dependency: perl(Term::ReadKey) for package: git-1.8.3.1-23.el7_8.x86_6426 --> Processing Dependency: perl(Git) for package: git-1.8.3.1-23.el7_8.x86_6427 --> Processing Dependency: perl(Error) for package: git-1.8.3.1-23.el7_8.x86_6428 -->Running transaction check29 ---> Package perl-Error.noarch 1:0.17020-2.el7 will be installed30 ---> Package perl-Git.noarch 0:1.8.3.1-23.el7_8 will be installed31 ---> Package perl-TermReadKey.x86_64 0:2.30-20.el7 will be installed32 -->Finished Dependency Resolution33

34 Dependencies Resolved35

36 =================================================================================================================================================================================================================

37 Package Arch Version Repository Size38 =================================================================================================================================================================================================================

39 Installing:40 git x86_64 1.8.3.1-23.el7_8 updates 4.4M41 Installing fordependencies:42 perl-Error noarch 1:0.17020-2.el7 base 32k43 perl-Git noarch 1.8.3.1-23.el7_8 updates 56k44 perl-TermReadKey x86_64 2.30-20.el7 base 31k45

46 Transaction Summary47 =================================================================================================================================================================================================================

48 Install 1 Package (+3Dependent packages)49

50 Total download size: 4.5M51 Installed size: 22M52 Is this ok [y/d/N]: y53 Downloading packages:54 (1/4): perl-Error-0.17020-2.el7.noarch.rpm | 32 kB 00:00:00

55 (2/4): perl-TermReadKey-2.30-20.el7.x86_64.rpm | 31 kB 00:00:00

56 (3/4): perl-Git-1.8.3.1-23.el7_8.noarch.rpm | 56 kB 00:00:02

57 (4/4): git-1.8.3.1-23.el7_8.x86_64.rpm | 4.4 MB 00:00:03

58 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

59 Total 1.2 MB/s | 4.5 MB 00:00:03

60 Running transaction check61 Running transaction test62 Transaction test succeeded63 Running transaction64 Warning: RPMDB altered outside of yum.65 Installing : 1:perl-Error-0.17020-2.el7.noarch 1/4

66 Installing : perl-TermReadKey-2.30-20.el7.x86_64 2/4

67 Installing : perl-Git-1.8.3.1-23.el7_8.noarch 3/4

68 Installing : git-1.8.3.1-23.el7_8.x86_64 4/4

69 Verifying : git-1.8.3.1-23.el7_8.x86_64 1/4

70 Verifying : 1:perl-Error-0.17020-2.el7.noarch 2/4

71 Verifying : perl-Git-1.8.3.1-23.el7_8.noarch 3/4

72 Verifying : perl-TermReadKey-2.30-20.el7.x86_64 4/4

73

74 Installed:75 git.x86_64 0:1.8.3.1-23.el7_876

77 Dependency Installed:78 perl-Error.noarch 1:0.17020-2.el7 perl-Git.noarch 0:1.8.3.1-23.el7_8 perl-TermReadKey.x86_64 0:2.30-20.el779

80 Complete!

81 [root@k8s-node2 ~]# git version82 git version 1.8.3.1

83 [root@k8s-node2 ~]#

构建选择执行shell命令,如下所示:

先执行命令,看看是否可以拉取成功,如下所示:

点击保存,如下所示:

然后点击立即构建,如下所示:

然后可以看到控制台输出,已经执行成功了,如下所示:

也可以去jenkins的目录查看,可以看到已经将项目代码拉取下来了,此时说明jenkins已经没有问题了,如下所示:

1 [root@k8s-node2 ~]# cd /root/.jenkins/

2 [root@k8s-node2 .jenkins]# ls3 com.cloudbees.hudson.plugins.folder.config.AbstractFolderConfiguration.xml hudson.plugins.git.GitTool.xml jenkins.telemetry.Correlator.xml plugins secrets workspace4 config.xml identity.key.enc jobs queue.xml updates5 credentials.xml jenkins.install.InstallUtil.lastExecVersion logs queue.xml.bak userContent6 fingerprints jenkins.install.UpgradeWizard.state nodeMonitors.xml secret.key users7 hudson.model.UpdateCenter.xml jenkins.model.JenkinsLocationConfiguration.xml nodes secret.key.not-so-secret workflow-libs8 [root@k8s-node2 .jenkins]# cd workspace/

9 [root@k8s-node2 workspace]# ls10 feiji feiji@tmp11 [root@k8s-node2 workspace]# cd feiji12 [root@k8s-node2 feiji]# ls13 img index.html js14 [root@k8s-node2 feiji]#

5、构建docker镜像并测试,生产环境中,点击一下立即构建,可以立马打包一个docker镜像,可以这样做在gitlab上面提交一份Dockerfile,直接点击一下立即构建,Jenkins就执行了docker build就可以构建出了Docker镜像。现在手动写一下Dockerfile。

1 [root@k8s-node3 feiji]# vim dockerfile2 [root@k8s-node3 feiji]#

配置内容,如下所示:

1 FROM 192.168.110.133:5000/nginx:1.13

2

3 # 将本目录下面的所有文件都加入进来4 ADD . /usr/share/nginx/html

如果直接执行,会将dockerfile放入进去,这里将dockerfile排除掉,如下所示:

1 [root@k8s-node3 feiji]# vim .dockerignore2 [root@k8s-node3 feiji]#

配置内容,如下所示:

1 [root@k8s-node3 feiji]# cat .dockerignore2 dockerfile3 [root@k8s-node3 feiji]#

构建镜像,并进行查看,如下所示:

1 [root@k8s-node3 feiji]# docker build -t feiji:v1 .2 Sending build context to Docker daemon 5.057MB3 Step 1/2 : FROM 192.168.110.133:5000/nginx:1.13

4 Trying to pull repository 192.168.110.133:5000/nginx ...5 sha256:e4f0474a75c510f40b37b6b7dc2516241ffa8bde5a442bde3d372c9519c84d90: Pulling from 192.168.110.133:5000/nginx6 f2aa67a397c4: Pull complete7 3c091c23e29d: Pull complete8 4a99993b8636: Pull complete9 Digest: sha256:e4f0474a75c510f40b37b6b7dc2516241ffa8bde5a442bde3d372c9519c84d9010 Status: Downloaded newer image for 192.168.110.133:5000/nginx:1.13

11 --->ae513a47849c12 Step 2/2 : ADD . /usr/share/nginx/html13 --->b33766b3a72114 Removing intermediate container 50b18847555615 Successfully built b33766b3a72116 [root@k8s-node3 feiji]# docker images |grep feiji17 feiji v1 b33766b3a721 13 seconds ago 114MB18 [root@k8s-node3 feiji]#

现在开始进行测试看看是否正常,直接启动一个容器,想自动构建镜像,首先看看手动是否可以成功,如下所示:

1 # 88端口映射到80端口号上2 [root@k8s-node3 feiji]# docker run -d -p 88:80feiji:v13 9a068575fdc98a7bd195fae564bc6645cca356982f95cb58eb97522cba9e3f184 [root@k8s-node3 feiji]#

此时项目已经构建成功了,手动构建项目是ok的。现在将刚才的命令结合jenkins进行实现,此时将这两个文件dockerfile、.dockerignore添加到我们的仓库里面去。

1 [root@k8s-node3 feiji]# ls2 css dockerfile img index.html js3 [root@k8s-node3 feiji]# git add .4 [root@k8s-node3 feiji]# git commit -m 'first update feiji'

5 [master caba46a] first update feiji6 2 files changed, 9 insertions(+)7 create mode 100644.dockerignore8 create mode 100644dockerfile9 [root@k8s-node3 feiji]# git push -u origin master10 Username for 'http://192.168.110.135': root11 Password for 'http://root@192.168.110.135':12 Counting objects: 5, done.13 Delta compression using up to 2threads.14 Compressing objects: 100% (3/3), done.15 Writing objects: 100% (4/4), 507 bytes | 0 bytes/s, done.16 Total 4 (delta 0), reused 0 (delta 0)17 To http://192.168.110.135/root/feiji.git

18 6a6a1d5..caba46a master ->master19 Branch master set up to track remote branch master fromorigin.20 [root@k8s-node3 feiji]#

此时,来gitlab进行查看,已经发生了改变,已经将两个文件dockerfile、.dockerignore上传上去了,如下所示:

此时,gitlab已经修改了,此时需要更新Jenkins,点击项目的设置,如下所示:

1 # 代码拉取下来之后,执行构建镜像,构建仓库的时候写上私有仓库的地址2 docker build -t 192.168.110.133:5000/feiji:v1 .3 # 上传到私有仓库里面4 docker push 192.168.110.133:5000/feiji:v1

此时,再次点击立即构建,等会查看私有仓库是否有该镜像,如下所示:

此时,发现已经构建成功了。此时存在的问题就是,如果再次点击立即构建,代码版本还是v1版本,会将之前的历史版本替换了,此时如何做到保留历史版本,这里每次立即构建的时候,需要每次更新Vx的版本,修改项目配置里面的变量。使用jenkins环境变量BUILD_ID。

这样就保证每次的版本就会更新的了,这样就解决了版本更新的问题。

此时,还有一个问题,除了版本更新的问题之外,还有一个问题就是每次更新并没有进行代码的更新,如果代码没有发生变化,此时不应该生成新的镜像。

1 #!/bin/bash2 if [ $GIT_PREVIOUS_SUCCESSFUL_COMMIT == $GIT_COMMIT ];then3 echo "no change,skip build"

4 exit 0

5 else

6 echo "git pull commit id not equals to current commit id trigger build"

7 fi

此时,尝试立即构建,但是没有进行任何更新,如下所示:

Logo

开源、云原生的融合云平台

更多推荐