【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

build jenkins,实际要get docker,要用到国外的源,所以build的时候要失败很多次,实在不行就直接用软件包,这就是一个docker镜像
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

这是已经把get docker整合进去了
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

这样存到harbor里,再去build就快了
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

load到docker引擎里,一层层加载,aufs
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

找到这个images,就需要打一个标签,push到仓库
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

修改dockerfile
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

到infra仓库里
就是build不过去,只能采用这种方法
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

只需要把底包加载进来,然后,12,3,4,5,6,

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

maven3也可以指定不同 的jdk来编译
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

下载jdk
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

解压到当前目录
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

这个jdk就进来了
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

如果maven不能用1.8jdk,需要到目录里一个脚本

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

java_home可以定义成当前jdk1.7,也就是执行maven命令的时候,用的是1.7,而没有用jenkins容器里的1.8,可以去手动的用maven指定jdk,只要去编辑maven脚本即【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

这只是演示,然后把安装的jdk删除
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

下一步交付Dubbo微服务提供者和消费者,需要准备一个底包,找到一个合适 运行时环境底包
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

debian系列的底包
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

把镜像pull下来
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

也可以run 这个sh的时候指定源是阿里云
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

有一个jre7 ,有一个jre8,可以直接用
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

下载下来的镜像应该打个tag,放到harbor镜像里
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

下载底包,调整时区,add confg.yml监控的,jmx_javaagent是收集jvm的信息,这个相当于采集jvm的jar包,一个采集jvm的客户端
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

下载下来
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

一般架构师就是通过监控jvm来调优。首先vi config.yml
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

这里相当于指定工作目录是opt/project.dir

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

docker默认运行的启动脚本
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

entrypoint.sh 定义了三个变量
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

这个变量是当前docker运行的环境变量有一个JAR_BALL的变量,赋值到shell脚本里,k8s的yaml配置清单里,可以传一个变量。这就是云原生的思想,docker不是信息孤岛,可以通过k8s配置清单,环境变量的方式来给容器做一些初始化的操作
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

这是java的一些启动参数
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

这是docker的ip,在k8s里叫pod IP
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

这是12346是m_port的默认值
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

这是执行的参数

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作
加上执行权限
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

需要在harbor里把base仓库创建出来。所有业务的底包
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

这就是base
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

push到harbor
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作

部署maven和部署dubbo微服务的底包镜像,准备共工作做好了,就可以在jenkins里做流水线
【K8S运维知识汇总】第5天2:dubbo微服务底包镜像制作