K8s使用Jenkins部署服务


1、安装Jenkins

#准备Java环境
tar xvf  jdk-8u231-linux-x64.tar.gz -C /usr/local/
cd /usr/local/
ln -s jdk1.8.0_231 java

cat  /etc/profile.d/java
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin

source  /etc/profile.d/java
java  -version

image-20200109091629813.png

yum -y install wget
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum --showduplicates list jenkins | expand    #查看需要安装的版本
yum -y install jenkins    #默认安装最新的

vim /etc/sysconfig/jenkins    #根据自己需要修改Jenkins配置文件

启动

systemctl  start  jenkins

ss -anutlp |grep 8080    #查看是否已经启动

2、web界面设置

image-20200108164547200.png

查看管理员密码:

cat  /var/lib/jenkins/secrets/initialAdminPassword

image-20200108164709630.png

image-20200108164821846.png

这里选择推荐插件,根据自己需求选择。

image-20200108184005492.png

安装时间有点长,如果有安装失败的,点击重新安装

image-20200108201346568.png

创建你的管理员账户,这里我是用admin账户登录,如果需要密码和开始cat的密码一致。

image-20200108201530291.png


从新设置admin用户的密码。

image-20200108201556722.png

3、安装插件

image-20200108201739175.png

image-20200108201905202.png

需要下载的插件有:docker-build-step,docker,Maven Integration

4、配置环境

4.1安装git

yum  -y  install  git

4.2安装maven

wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar xvf apache-maven-3.6.3-bin.tar.gz  -C  /usr/local
ln -s apache-maven-3.6.3 maven

cat  /etc/profile.d/maven
export MAVEN_HOME=/usr/local/maven
export PATH=$MAVEN_HOME/bin:$PATH

source  /etc/profile.d/maven
mvn  --version

image-20200109092023584.png

4.3安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install -y docker-ce-18.06.1.ce-3.el7
systemctl start docker
systemctl status docker

4.4备注:这里我使用的是公司私服,需要配置setting文件,我的setting文件放在/opt/下

image-20200109093436907.png

5、配置全局环境

5.1配置docker

image-20200109094545424.pngimage-20200109094729157.png

拉到最下面选择创建一个云,设置名称,还有url

image-20200109094915957.png

5.2配置maven,jdk,git

image-20200109095046683.png

image-20200109095202002.png

image-20200109095231170.png

image-20200109095305156.png

配置完成后保存!

6、配置项目

选择构建maven项目

image-20200109093621878.png

选择git

image-20200109094015268.png

这里需要创建一个远程克隆代码的用户,这个用户必须存在你的gitlab代码用户组中,而且有clone代码的权限

image-20200109094207003.png

image-20200109094301643.png

然后选择刚才创建的用户即可,生产环境没有配置自动构建,需要的自行配置

image-20200109094416853.png

image-20200109095652155.png

image-20200109095956958.png

Dckerfile文件

FROM registry.hello.com/jdk:1.8_232    #这里是我私仓自己的jdk镜像
ADD ./target/app.jar  app.jar
CMD  ["java  -jar app.jar  -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"]

image-20200109100635066.png

#完整的命令,根据自己环境修改,制作示例,具体可查看kebectl  set  image命令的使用

ssh [email protected] "kubectl set image deployment/hello hello=registry.cn-hangzhou.aliyuncs.com/helloworld/hello:${BUILD_NUMBER} -n master"

说明:这里是Jenkins用户去执行命令,会报错Host key verification failed,需要使用Jenkins用户创建密钥

解决办法:

    在安装jenkins后,系统生成了jenkins这个普通用户,但是在/etc/passwd中,他的shell是/bin/false,所以他不能登录系统,也没有家目录;首先我们修改他的登录权限,将/bin/false改为/bin/bash,切换到jenkins用户,su

- jenkins,他的终端显示为-bash-4.2$

jenkins:x:997:995:Jenkins Automation Server:/var/lib/jenkins:/bin/bash

生成jenkins用户密钥对

[root@bogon .ssh]# su - jenkins
-bash-4.2$ ssh-keygen -t rsa
回车

-bash-4.2$ ssh-copy-id -i /var/lib/jenkins/.ssh/id_rsa.pub [email protected]<k8s集群master节点的ip>

使用sudo提升普通用户权限

用viduso去修改文件,命令和命令之间要用逗号,最后用visudo -c检查语法是否出错.

visudo
root    ALL=(ALL)       ALL  # 原有的
jenkins ALL=(ALL)       NOPASSWD:/usr/bin/ssh,/usr/bin/rsync # 新增的

最后就能够在jenkins中使用command命令执行了

构建成功后

image-20200109101124234.png

猜你喜欢

转载自blog.51cto.com/14268033/2465692