当前位置: 代码迷 >> 综合 >> Docker+OpenFaas+Flask客户端环境配置以及harbor+rancher集群使用
  详细解决方案

Docker+OpenFaas+Flask客户端环境配置以及harbor+rancher集群使用

热度:52   发布时间:2024-02-09 12:59:08.0

Docker+OpenFaas+Flask客户端环境配置以及harbor+rancher集群使用

1. Matlab打包

1.1 Matlab文件打包

2. Python+matlab+Flask+Faas配置

2.1. 环境配置-客户端连接服务端

2.2 环境配置-基于flask-python的OpenFaas配置

2.3 自动生成基于python的OpenFaas工程

2.4 引入matlab包和数据

2.5 将python_matlab的tar(python_mcr.tar)包变成镜像

2.6 修改handler文件

2.7 自动生成requirements.txt 文件

2.8 创建dockerfile

2.9. 换下载源

3. 程序运行

3.1 安装依赖包

3.2 运行文件(正确流程)

3.3 打包上传的结果查看

 

1. Matlab打包

1.1 Matlab文件打包

  1. 写一个简单的matlab函数,plus_one.m。

2)进入library compiler应用进行函数打包。

下图中的Samples可以自动创建或者自行编写,这里自动创建plus_oneSample1.m,之后maltab中可以在for_redistribution_only/samples文件夹下自动生成用于python调用matlab的.py文件例子

       下图中的Files required中可以添加打包的函数(plus_one)调用的子函数。

       填写完成后即可点击Package进行打包,打包后生成plus_one.prj文件和plus_one文件夹。

       文件夹plus_one中的内容如下图所示

       在文件夹for_redistribution_files_only中,含有setup.py文件,该文件是执行python拓展包安装的文件。在路径for_redistribution_files_only/samples中含有python语言调用打包的matlab函数的示例程序plus_oneSample1.py,该示例程序根据library compiler中添加的Samples生成,非常值得参考。

 

2. Python+matlab+Flask+Faas配置

2.1. 环境配置-客户端连接服务端

在本地机器的系统环境变量中设置一个名为的OPENFAAS_URL的变量,值为服务端的地址和端口

现在登入(可能需要打开一个新的终端命令行工具窗口,让环境变量生效)

本地测试是否连接成功:

GitBash中输入:

faas-cli version

 

2.2 环境配置-基于flask-python的OpenFaas配置

安装flask包,之后才能用基于flask-python的OpenFaas

Gitbash中输入命令:(注意是faas-cli 命令)

 

faas-cli template pull https://github.com/openfaas-incubator/python-flask-template

可以看到工程的template路径下出现之前下载的包

 

2.3 自动生成基于python的OpenFaas工程

faas-cli new yourprojectname --lang python3-flask -g 网址和端口

 

2.4 引入matlab包和数据

将打包好的文件放到python相应的工程目录下(可手动拷贝或者使用COPY命令)

在terminal中cd到matlab包的for_redistribution_files_only中,执行:python setup.py install

注意修改dockerfile

在其中添加:RUN cd yourmatlabfunctionname/for_redistribution_files_only &&python setup.py install

 

2.5 将python_matlab的tar(python_mcr.tar)包变成镜像

docker load -i ‘文件位置’

 

2.6 修改handler文件

前面加上matlab环境路径配置代码:

import osold_env = os.environ.get("LD_LIBRARY_PATH")
if old_env:old_env = os.environ['LD_LIBRARY_PATH'] = os.environ['LD_LIBRARY_PATH'] + \"/usr/local/MATLAB/MATLAB_Runtime/v97/runtime/glnxa64:" + \"/usr/local/MATLAB/MATLAB_Runtime/v97/bin/glnxa64:" + \"/usr/local/MATLAB/MATLAB_Runtime/v97/sys/os/glnxa64:" + \"/usr/local/MATLAB/MATLAB_Runtime/v97/extern/bin/glnxa64:"
else:old_env = os.environ['LD_LIBRARY_PATH'] = "/usr/local/MATLAB/MATLAB_Runtime/v97/runtime/glnxa64:" + \"/usr/local/MATLAB/MATLAB_Runtime/v97/bin/glnxa64:" + \"/usr/local/MATLAB/MATLAB_Runtime/v97/sys/os/glnxa64:" + \"/usr/local/MATLAB/MATLAB_Runtime/v97/extern/bin/glnxa64:"
os.environ['LD_LIBRARY_PATH'] = old_env

 

2.7 自动生成requirements.txt 文件

安装pipreqs:pip install pipreqs

cd到工程目录下,执行:pipreqs ./ --encoding=utf8 --force

 

2.8 创建dockerfile

在template的python-flask目录下,编写dockerfile,注意在其中加入修改成符合flask的目录结构

 

2.9. 换下载源

将sources.list拷贝到template的python-flask中,并在dockerfile中加入:

RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak
COPY sources.list /etc/apt/sources.list

(需要根据自己的目录结构进行修改,sources.list可自行百度创建)

附:需要根据工程需要,相应的修改index.py和yml文件

 

3. 程序运行

3.1 安装依赖包

1) pandas 包

升级pip 命令—此为安装到anaconda 环境中:

python -m pip install --upgrade pip

安装pandas 包

pip install pandas -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com/pypi/simple

也可以直接在pycharm interpreter 中安装

注:安装pandas时可能需要挂VPN

附:pandas包使用conda 命令安装时显示版本与py37不匹配,因此这里用pip

2) matlab matplotlib等包

直接在pycharm interpreter 中安装

 

3.2 运行文件流程

1)Docker打开

2)登录faas客户端

3)创建镜像

faas-cli build -f yourprojectname.yml

4)登录harbor

5) 上传镜像

faas-cli push -f yourprojectname.yml

6)部署镜像

faas-cli deploy -f yourprojectname.yml

 

3.3 打包上传的结果查看

登录harbor查看即可