TDT Inceptor 换包操作

  产品补丁
内容纲要

概要描述


正常使用TDT的各项功能,需要为Inceptor更新patch。

本文主要讲述如何通过 Dockerfile 更换Inceptor/Argodb镜像中的tdt jar包。

注:
1、操作版本:TDS 3.0.1,其他版本如无其他意外均可兼容
2、Inceptor TDH 6.2.2版本,请走Inceptor patch流程。
3、ArgoDB 3.2.0~3.2.2,可以按照本文操作。
4、ArgoDB 5.2,已包含最新patch,无需操作。

本文以Argodb 322,TDS3.0.1环境为例进行演示。

详细说明


1、下载附件

inceptor-tdt.tar.gz

2、文件检查

上传下载的patch包到集群节点上,并解压:

tar -xzvf etcdca.tar.gz

进入解压目录,检查additional-inceptor-tdt-plugin-1.0.1.jar的MD5:

additional-inceptor-tdt-plugin-1.0.1.jar
MD5sum:03319429c7eae3b22ed6e0240b015639

[root@argodb-30~]# cd inceptor-tdt
[root@argodb-30~/inceptor-tdt]# ls
additional-inceptor-tdt-plugin-1.0.1.jar  Dockerfile  patch.sh
[root@argodb-30~/inceptor-tdt]# md5sum additional-inceptor-tdt-plugin-1.0.1.jar
03319429c7eae3b22ed6e0240b015639  additional-inceptor-tdt-plugin-1.0.1.jar
3、找到需要更换的镜像
[root@argodb-30~]# docker images | grep argodb-inceptor
transwarp/argodb-inceptor                            argodb-3.2.2-final                            685d7643871c        10 months ago       1.82GB
argodb-30:5000/transwarp/argodb-inceptor             argodb-3.2.2-final                            685d7643871c        10 months ago       1.82GB
4、备份原始镜像
[root@argodb-30~]# docker tag 685d7643871c argodb-30:5000/transwarp/argodb-inceptor:argodb-3.2.2-final-bak20230316
[root@argodb-30~]# docker images | grep argodb-inceptor
argodb-30:5000/transwarp/argodb-inceptor             argodb-3.2.2-final-bak20230316                685d7643871c        10 months ago       1.82GB
transwarp/argodb-inceptor                            argodb-3.2.2-final                            685d7643871c        10 months ago       1.82GB
argodb-30:5000/transwarp/argodb-inceptor             argodb-3.2.2-final                            685d7643871c        10 months ago       1.82GB
5、修改 Dockerfile
[root@argodb-30~]# cd inceptor-tdt
[root@argodb-30~/inceptor-tdt]# vi Dockerfile

将首行FROM后的 <inceptor/argodb-inceptor原始镜像ID>替换为当前使用的镜像,除第一行之外,其他都不需要修改,如:

FROM argodb-30:5000/transwarp/argodb-inceptor:argodb-3.2.2-final

#如果inceptor-pod中/usr/lib/inceptor/lib/目录下已存在 additional-inceptor-tdt-plugin-1.0.1.jar/additional-inceptor-tdt-plugin-1.0.0.jar 需要先删除additional-inceptor-tdt-plugin-1.0.1.jar/additional-inceptor-tdt-plugin-1.0.1.jar

RUN RM -F /usr/lib/inceptor/lib/additional-inceptor-tdt-plugin-1.0.1.jar
RUN RM -F /usr/lib/inceptor/lib/additional-inceptor-tdt-plugin-1.0.0.jar
ADD additional-inceptor-tdt-plugin-1.0.1.jar /usr/lib/inceptor/lib/additional-inceptor-tdt-plugin-1.0.1.jar
ADD patch.sh /root/patch.sh
RUN sh /root/patch.sh
6、构建新镜像
[root@argodb-30~/inceptor-tdt]# docker build -f Dockerfile -t argodb-30:5000/transwarp/argodb-inceptor:argodb-3.2.2-final ./
Sending build context to Docker daemon  260.6kB
Step 1/6 : FROM argodb-30:5000/transwarp/argodb-inceptor:argodb-3.2.2-final
 ---> 685d7643871c
Step 2/6 : RUN rm -f /usr/lib/inceptor/lib/additional-inceptor-tdt-plugin-1.0.1.jar
 ---> Running in e4ce43257393
Removing intermediate container e4ce43257393
 ---> fc269953724c
Step 3/6 : RUN rm -f /usr/lib/inceptor/lib/additional-inceptor-tdt-plugin-1.0.0.jar
 ---> Running in 803e1ffa4396
Removing intermediate container 803e1ffa4396
 ---> 0ae4029c7c99
Step 4/6 : ADD additional-inceptor-tdt-plugin-1.0.1.jar /usr/lib/inceptor/lib/additional-inceptor-tdt-plugin-1.0.1.jar
 ---> 6004a851e23b
Step 5/6 : ADD patch.sh /root/patch.sh
 ---> 1f4950fb505c
Step 6/6 : RUN sh /root/patch.sh
 ---> Running in 42add6584f66
create dir /tmp_docker
#### process hive-inceptor ####
#### cp hive-inceptor.sh to /tmp_docker/hive-inceptor.sh.bak
#### prev string is: for jar in find /usr/lib/inceptor -name "*.jar" | sort ####
#### need to replace 184c ####
#### now string is: for jar in find /usr/lib/inceptor -name *.jar | sort ####
#### process hive-metastore ####
#### cp hive-metastore.sh to /tmp_docker/hive-metastore.sh.bak
#### prev string is: for jar in find /usr/lib/inceptor -name "*.jar" | sort ####
#### need to replace 27c ####
#### now string is: for jar in find /usr/lib/inceptor -name *.jar | sort ####
#### process inceptor-executor ####
#### cp inceptor-executor.sh to /tmp_docker/inceptor-executor.sh.bak
#### prev string is: for jar in find /usr/lib/inceptor -name "*.jar" | sort; do ####
#### need to replace 23c ####
#### now string is: for jar in find /usr/lib/inceptor -name *.jar | sort; do ####
#### process inceptor-compactor ####
#### cp inceptor-compactor.sh to /tmp_docker/inceptor-compactor.sh.bak
#### prev string is: for jar in find /usr/lib/inceptor -name "*.jar" | sort ####
#### need to replace 27c ####
#### now string is: for jar in find /usr/lib/inceptor -name *.jar | sort ####
Removing intermediate container 42add6584f66
 ---> 2b4d69ad1fa1
Successfully built 2b4d69ad1fa1
Successfully tagged argodb-30:5000/transwarp/argodb-inceptor:argodb-3.2.2-final

file

可以看到有刚刚构建的镜像,1 minutes ago

[root@argodb-30~/inceptor-tdt]# docker images | grep argodb-inceptor
argodb-30:5000/transwarp/argodb-inceptor             argodb-3.2.2-final                            2b4d69ad1fa1        1 minutes ago       1.82GB
argodb-30:5000/transwarp/argodb-inceptor             argodb-3.2.2-final-bak20230316                685d7643871c        10 months ago       1.82GB
transwarp/argodb-inceptor                            argodb-3.2.2-final                            685d7643871c        10 months ago       1.82GB
7、push 镜像到仓库
[root@argodb-30~/inceptor-tdt]# docker push argodb-30:5000/transwarp/argodb-inceptor:argodb-3.2.2-final
The push refers to repository [argodb-30:5000/transwarp/argodb-inceptor]
19d6e24b6d99: Preparing
c13c1ff082cf: Preparing
5789603f8062: Preparing
6ce5f0a8964b: Preparing
93cc643b3eac: Preparing
3d1d044edc48: Preparing
19d6e24b6d99: Pushed
a6f8dcabf407: Layer already exists
c928b954c7f4: Layer already exists
0c1f07652749: Layer already exists
6302f0e56d11: Layer already exists
5c1f9eddd742: Layer already exists
d81fdfedcb1f: Layer already exists
1e153e03bc09: Layer already exists
50863db713ca: Layer already exists
503442196f39: Layer already exists
452aca7e3b49: Layer already exists
affc547ab496: Layer already exists
0e996eb501ad: Layer already exists
004b96cfd2d8: Layer already exists
ae0503e40de6: Layer already exists
505d4ff93dee: Layer already exists
a1ef400045e3: Layer already exists
4b4a37289c36: Layer already exists
dccd95be5c5a: Layer already exists
a54bb7f87eeb: Layer already exists
716b8167f30f: Layer already exists
b311413396b5: Layer already exists
29e278ebc766: Layer already exists
eaab48117708: Layer already exists
6eceab664717: Layer already exists
4b7f4432bbdb: Layer already exists
43ae7c496d3c: Layer already exists
12e5c9fc695d: Layer already exists
2e73f4760090: Layer already exists
e0e4a7b2e79b: Layer already exists
e513b2830fa2: Layer already exists
5172709fef7f: Layer already exists
46948308e402: Layer already exists
d8025bc6ccd2: Layer already exists
d37bfa67dc08: Layer already exists
afdb439de1c9: Layer already exists
724069e16789: Layer already exists
cb89acbd4a50: Layer already exists
15b278e9dd57: Layer already exists
97a2cf029346: Layer already exists
f3a2a5dcc64d: Layer already exists
a7873230c9b8: Layer already exists
5f70bf18a086: Layer already exists
f64116beaa4b: Layer already exists
argodb-3.2.2-final: digest: sha256:2d1b78a11105f0195146e67bde58444d58801e1a6e6335844bab80aaca9fadd1 size: 11582
[root@argodb-30~/inceptor-tdt]#
8、验证

换完重启服务

# 进入pod
kubectl get pod -owide | grep argodbcomputing
kubectl exec -it inceptor-server-argodbcomputing1-748545568d-wjr44 bash
# 检查pod内路径/usr/lib/inceptor/lib/中的additional-inceptor-tdt-plugin-1.0.1.jar
cd /usr/lib/inceptor/lib/
# 检查MD5
md5sum additional-inceptor-tdt-plugin-1.0.1.jar
03319429c7eae3b22ed6e0240b015639
9、回退

只需要将之前备份的镜像 tag 还原成当前版本的 tag;然后重新 push 到镜像仓库即可完成回退;

[root@argodb-30~/inceptor-tdt]# docker tag 685d7643871c argodb-30:5000/transwarp/argodb-inceptor:argodb-3.2.2-final
[root@argodb-30~/inceptor-tdt]# docker push argodb-30:5000/transwarp/argodb-inceptor:argodb-3.2.2-final

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。