Docker+OpenFaas+Flask客户端环境配置以及harbor+rancher集群使用
2.2 环境配置-基于flask-python的OpenFaas配置
2.5 将python_matlab的tar(python_mcr.tar)包变成镜像
- 写一个简单的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生成,非常值得参考。
1)客户端配置
在需要安装faas-cli的本地机器上安装docker,之后安装faas-cli:
windows用户(Git Bash)
$curl -sL https://cli.openfaas.com | sh
(Windows用户如果遇到网络问题导致下载失败,可直接将faas-cli.exe安装包放到用户根目录下的bin文件夹下,并把gitbash的安装的cmd目录加入系统环境变量classpath下或者path目录下,即可完成openfaas客户端的安装。)
2)客户端连接服务端
在本地机器的系统环境变量中设置一个名为的OPENFAAS_URL的变量,值为服务端的地址和端口
现在登入(可能需要打开一个新的终端命令行工具窗口,让环境变量生效),之后使用echo命令登入
本地测试是否连接成功:
GitBash中输入:
faas-cli version
(附:
1)查看环境变量是否设置成功
echo $OPENFAAS_URL
若无,添加环境变量
export OPERNFAAS_URL=*******
2)登入时若出错,可尝试以下两种解决方法:
第一种以管理员身份打开:
第二种输入命令时,最后加上密码
3)openfaas官方文档https://docs.openfaas.com/cli/templates/
Pycharm terminal 转换为GitBash
https://blog.csdn.net/u011519550/article/details/89855122
)
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路径下出现之前下载的包
faas-cli new yourprojectname --lang python3-flask -g 网址和端口
将打包好的文件放到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 ‘文件位置’
前面加上matlab环境路径配置代码:
import os
old_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
安装pipreqs:pip install pipreqs
cd到工程目录下,执行:pipreqs ./ --encoding=utf8 --force
在template的python-flask目录下,编写dockerfile,注意在其中加入修改成符合flask的目录结构
将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文件
升级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 中安装
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
登录harbor查看即可