研发测试云需求:大数据部署选择应用构建产生的jar包,部署执行时把jar包上传到用户申请的指定IP的服务器上去,这个上传的过程之前是需要用户手动上传jar包并挂载数据卷;
思路:因为构建的jar包是存储在minio 可利用
mc cp命令将minio的jar包拷贝至服务器指定位置。这些操作要在k8s初始化镜像initContainer去执行,所以现在要制作这种镜像
1.在本地服务器拷贝mc执行文件
[root@node-seanwang-pro-cb0c3f home]# whereis mcmc: /usr/bin/mc
2.新建dockfile文件,并填写内容
FROM harbor.hy.cn/library/centos:v1 ADD mc /usr/bin/ RUN chmod +x /usr/bin/mc
3.把dockfile和mc文件放在同一目录下之后 执行docker制作镜像命令
#不要落下最后的 .docker build -f dockfile -t centos-mc:v1 .
4.先进入到容器里面
docker run -id --name=mymc centos-mc:v1docker exec -it mymc /bin/bash
5.查看mc 并配置公司的minio服务器
[root@node-seanwang-pro-cb0c3f home]# mc config host lsgcsURL : https://storage.googleapis.comAccessKey : YOUR-ACCESS-KEY-HERESecretKey : YOUR-SECRET-KEY-HEREAPI : S3v2Lookup : dnslocalURL : http://localhost:9000AccessKey :SecretKey :API :Lookup : autoplayURL : https://play.min.ioAccessKey : Q3AM3UQ867SPQQA43P2FSecretKey : zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TGAPI : S3v4Lookup : autos3URL : https://s3.amazonaws.comAccessKey : YOUR-ACCESS-KEY-HERESecretKey : YOUR-SECRET-KEY-HEREAPI : S3v4Lookup : dns#配置公司的minio服务器地址[root@node-seanwang-pro-cb0c3f home]# mc config host add myminio http://172.19.xx.xx:9000 root HaiYi666#再次执行mc config host ls可查看刚刚配置的myminio服务地址#执行命令查看myminio内容 有结果就成功了[root@node-seanwang-pro-cb0c3f home]# mc ls myminio[2022-03-24 02:59:53 UTC] 0B 1--shelf/[2021-12-30 09:41:19 UTC] 0B 1-alltest1218/[2021-03-02 02:47:32 UTC] 0B 1-ceshi-1221/[2021-12-28 06:11:32 UTC] 0B 1-ceshixiangmu/[2021-12-28 02:55:49 UTC] 0B 1-dev-use-dev/[2022-03-14 06:28:21 UTC] 0B 1-devzone-0926/[2021-07-16 00:38:45 UTC] 0B 1-electricity-project/[2021-12-28 02:53:54 UTC] 0B 1-hjyfbcs/[2020-11-17 03:12:52 UTC] 0B 1-jrwtest/[2022-04-08 02:28:02 UTC] 0B 1-kf10-ddf/[2022-01-17 05:35:38 UTC] 0B 1-kf10-ddt1/[2021-12-28 06:00:46 UTC] 0B 1-kf10-feature/[2022-02-18 07:06:25 UTC] 0B 1-kf10-release/[2022-03-03 02:59:00 UTC] 0B 1-kf10-test1228/[2022-02-17 08:23:57 UTC] 0B 1-kf10-testzt2/[2020-08-27 09:21:22 UTC] 0B 1-mytestbucket/[2022-01-26 00:41:54 UTC] 0B 1-port-change/[2022-04-08 07:21:24 UTC] 0B 1-seanwang-pro/[2022-03-07 07:32:19 UTC] 0B 1-seanwang-project01/[2021-03-08 01:53:38 UTC] 0B 1-seanwang2-1221/[2021-01-13 01:34:56 UTC] 0B 1-server-apply-test/
6.把能够使用mc命令访问公司minio的容器打成镜像
docker commit 9d1bb925c70b harbor.hy.cn/library/centos-mc:v1
7.登录公司harbor 并推送镜像
docker login harbor.hy.cn#输入用户名密码docker push harbor.hy.cn/library/centos-mc:v1
8.然后在部署构建yaml时 添加一个mc的initContainer
#command的内容需要用户选择构建的那个jar包#大概结果是这个样子,kubectl apply部署镜像时会先创建initContainers里的镜像(其中的command也会执行),这个时候mc cp 1-seanwang-pro/artifacts/app_build/sean-big2-build/2/ /root/bigdata拉取jar包到用户服务器的/root/bigdata下,这样就不用手动上传jar包了。initContainers:- name: image-mcimage: harbor.hy.cn/library/centos-mc:v1imagePullPolicy: Alwayscommand:- mc- cp- 1-seanwang-pro/artifacts/app_build/sean-big2-build/2/- /root/bigdatasecurityContext:privileged: truevolumeMounts:- name: docker-socketmountPath: /var/run/docker.sock

