概要描述
基于客户侧要求升级TDS的jdk到最新版本。
301版本的studio的jdk版本默认为jdk1.8.0_201,客户要求升级至最新的"1.8.0_362",下面为具体步骤。
详细描述
1.确认对应组件包含的镜像包并且备份
-
以foundation组件为例,其组件包含了connector 、gateway、 navigator、 search、 tools、 user-server 、user-web这些镜像包。
-
备份相关组件镜像; 切记对于所要升级的组件的镜像一定都要做好备份!!
docker tag e5d2a98ab3ca ddmss00:5000/transwarp/foundation-connector:studio-3.0.1-final-bak
ps:具体的可以根据对实际运行的组件通过kubectl describe pod获取对应的镜像id,例如catalog组件仅通过dokcer images|grep catalog 则获取不到baymax的镜像信息。
kubectl describe pod baymax-web-catalog4-769d9b46df-rzt8p |grep Image
如上得出镜像信息为
ddmss00:5000/transwarp/foundation-gateway:studio-3.0.1-final 等等
2.根据所要更新的镜像信息,构建Dockerfile
dockerfile的内容大概如下:
FROM ddmss00:5000/transwarp/catalog-platform:studio-3.0.1-final
COPY OpenJDK8U-jdk_x64_linux_hotspot_8u362b09.tar.gz /usr/java/
RUN tar -zxf /usr/java/OpenJDK8U-jdk_x64_linux_hotspot_8u362b09.tar.gz -C /usr/java/
RUN chown -R root:root /usr/java/jdk8u362-b09
RUN mv /usr/java/jdk1.8.0_201 /usr/java/bak-jdk1.8.0_201
RUN yes|cp /usr/java/bak-jdk1.8.0_201/jre/lib/security/cacerts /usr/java/jdk8u362-b09/jre/lib/security/
RUN cp -r /usr/java/jdk8u362-b09 /usr/java/bak-jdk8u362-b09
RUN rm -f /usr/java/OpenJDK8U-jdk_x64_linux_hotspot_8u362b09.tar.gz
ENV JAVA_HOME=/usr/java/jdk8u362-b09
ENV JAVA8_HOME=/usr/java/jdk8u362-b09
ENV PATH=$JAVA_HOME/bin:$PATH
上述dockerfile中是对catalog的catalog-platform镜像进行升级,其他组件需替换该镜像信息,其他内容保持不变即可,除了catalog的baymax和sqlbook的镜像,foundation、workflow、tdt的镜像均适用。
对于sqlbook和 catalog的baymax,则需要修改一下dockefile的内容,具体如下
FROM ddmss00:5000/transwarp/baymax-web:studio-3.0.1-final
COPY OpenJDK8U-jdk_x64_linux_hotspot_8u362b09.tar.gz /usr/java/
RUN tar -zxf /usr/java/OpenJDK8U-jdk_x64_linux_hotspot_8u362b09.tar.gz -C /usr/java/
RUN chown -R root:root /usr/java/jdk8u362-b09
RUN rm -rf /usr/java/latest
RUN ln -s /usr/java/jdk8u362-b09/ /usr/java/latest
RUN yes|cp /usr/java/jdk1.8.0_192-amd64/jre/lib/security/cacerts /usr/java/jdk8u362-b09/jre/lib/security/
RUN cp -r /usr/java/jdk8u362-b09 /usr/java/bak-jdk8u362-b09
RUN rm -f /usr/java/OpenJDK8U-jdk_x64_linux_hotspot_8u362b09.tar.gz
ENV JAVA_HOME=/usr/java/jdk8u362-b09
ENV JAVA8_HOME=/usr/java/jdk8u362-b09
ENV PATH=$JAVA_HOME/bin:$PATH
3.构建新的镜像
-
将OpenJDK8U-jdk_x64_linux_hotspot_8u362b09.tar.gz包和dockerfile 上传至管理服务器节点某目录下
-
生成新的镜像
docker build -f Dockerfile-baymax -t ddmss00:5000/transwarp/baymax-web:studio-3.0.1-final ./
-
将新的镜像push到镜像库中
docker push ddmss00:5000/transwarp/baymax-web:studio-3.0.1-final
4.重启服务生效
-
待相关服务的所有组件的镜像都升级完成之后,在manager页面重启相关服务。
-
PS:本次JDK只升级了foundation、workflow、transporter、catalog、sqlbook组件。