Skip to content
当前页面

环境部署

3-1、制作镜像

Dockerfile位置

主机:iasp68 (172.18.231.68)
Dockerfile及工程目录:/mci/dockers/img_pyserv
生成镜像指令:docker build -t {imageName}.

端口说明

镜像介绍内部端口外部端口描述
以镜像方式部署python后台服务11911191(可自己指定,但要和java后台对接)rest端口
32933293nginx- svcmain.py 的监听端口
38713871pypi-server 的监听端口
30223022sftpgo 的服务端口

3-2、测试环境部署

- 部署主机

测试环境是172.18.231.75主机

- 部署python服务容器

- 迁移私服仓库

迁移私服仓库至部署主机,私服仓库位置iasp68:/mci/dockers/packages/pypi

- 启动python容器

docker run -it --name {containername} -p 3293:3293 -p 3871:3871 -p 3191:3191 -p 3022:3022 -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -u 0:0 --group-add 0 -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker:ro -v /lib64/libltdl.so.7.3.0:/usr/lib/libltdl.so.7:ro -v {部署主机私服仓库}:/pyserv/pypi  -v /etc/docker:/etc/docker -e HOST_IP={部署主机IP} -e HOME=/pyserv -w=/pyserv { imageName } /bin/bash

- 配置k8s环境

部署环境申请下来独有的k8s环境,需要在python服务容器内配置,将k8s环境的config迁移至容器内,命令如下:

docker cp xxx.config { containername }: /pyserv/.kube/config

- 配置daemon.json

daemon.json文件内配置镜像仓库地址 daemon.json在容器中的目录:/etc/docker/daemon.json
案例:
img1

- 首次登录镜像仓库

进入开发容器,登录镜像仓库,获取key值,以便能够推送镜像至镜像仓库
进入容器:docker exec -it {容器名称} /bin/bash

案例:

img2

- 启动python服务

进入容器,启动python服务
案例: img3

- Python服务配置文件说明

pyserv_conf.py配置文件部分信息说明

    rest_port": 3191,  # rest服务端口
    'k8s_name_space':"xxxxx",   # k8s的名称空间(需要根据部署环境的k8s环境配置)
    'k8s_config_file':"/pyserv/.kube/config",   # k8s 的访问配置文件
    #数据库信息(设置部署环境的数据库信息)
    "images_to_database_user":"xxxx",
    "images_to_database_password":"xxx",
    "images_to_database_host":"xxxx",
    "images_to_database_port":xxxx,
    "images_to_database_database":"xxx",
    "project_base_image":"datamng:v2.2.0",#项目容器基础镜像

- 其余基础镜像

以下镜像为使用算法平台系统需要的依赖镜像,需要推送至镜像仓库
taskrun:v2、jupyterlab:3.7

推送镜像至k8s环境命令如下:

  1. 在本地 docker 环境中输入以下命令进行登录
sudo docker login boatswain.registry.si-tech.com.cn:30100
  1. 然后,对本地需要 push 的 image 进行标记,比如:
sudo docker tag <imageName>:<tag> boatswain.registry.si-tech.com.cn:30100/<projectName>/<repository>:<tag> 
  1. 最后在命令行输入如下命令,就可以 push 这个 image 到镜像仓库中了
sudo docker push boatswain.registry.si-tech.com.cn:30100/<projectName>/<repository>:<tag>
  1. projectName为部署环境的k8s环境的命名空间

3-3、生产环境部署

- 部署python服务容器

- 迁移私服仓库

迁移私服仓库至部署主机,私服仓库位置 iasp68:/mci/dockers/packages/pypi

- 启动python容器

docker run -it --name {containername} -p 3293:3293 -p 3871:3871 -p 3191:3191 -p 3022:3022 -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -u 0:0 --group-add 0 -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker:ro -v /lib64/libltdl.so.7.3.0:/usr/lib/libltdl.so.7:ro -v {部署主机私服仓库}:/pyserv/pypi  -v /etc/docker:/etc/docker -e HOST_IP={部署主机IP} -e HOME=/pyserv -w=/pyserv { imageName } /bin/bash

- 配置k8s环境

部署环境申请下来独有的k8s环境,需要在python服务容器内配置,将k8s环境的config迁移至容器内,命令如下:

docker cp xxx.config { containername }: /pyserv/.kube/config

- 配置daemon.json

daemon.json文件内配置镜像仓库地址
daemon.json在容器中的目录:/etc/docker/daemon.json
案例:
img4

- 首次登录镜像仓库

进入开发容器,登录镜像仓库,获取key值,以便能够推送镜像至镜像仓库
进入容器:docker exec -it {容器名称} /bin/bash
案例:

img5

- 启动python服务

进入容器,启动python服务
案例:
img6

- Python服务配置文件说明

pyserv_conf.py配置文件部分信息说明

	rest_port": 3191,  # rest服务端口
	'k8s_name_space':"xxxxx",   # k8s的名称空间(需要根据部署环境的k8s环境配置)
	'k8s_config_file':"/pyserv/.kube/config",   # k8s 的访问配置文件
	#数据库信息(设置部署环境的数据库信息)
	"images_to_database_user":"xxxx",
    "images_to_database_password":"xxx",
    "images_to_database_host":"xxxx",
    "images_to_database_port":xxxx,
    "images_to_database_database":"xxx",
    "project_base_image":"datamng:v2.2.0",#项目容器基础镜像

- 其余基础镜像

以下镜像为使用算法平台系统需要的依赖镜像,需要推送至镜像仓库  
taskrun:v2、jupyterlab:3.7  

推送镜像至k8s环境命令如下:

  1. 在本地 docker 环境中输入以下命令进行登录
sudo docker login boatswain.registry.si-tech.com.cn:30100
  1. 然后,对本地需要 push 的 image 进行标记,比如:
sudo docker tag <imageName>:<tag> boatswain.registry.si-tech.com.cn:30100/<projectName>/<repository>:<tag> 
  1. 最后在命令行输入如下命令,就可以 push 这个 image 到镜像仓库中了
sudo docker push boatswain.registry.si-tech.com.cn:30100/<projectName>/<repository>:<tag>
  1. projectName为部署环境的k8s环境的命名空间

文档中心