图片识别app-从keras+flask代码到kubernetes部署
使用python flask 以及 keras建立一个简单的image recognition的工具,最后使用docker和kubernetes将应用容器化部署在PaaS平台上对外提供服务。
机器学习+kubernetes
使用python flask 以及 keras建立一个简单的image recognition的工具,主要参考了这里
觉得有点意思就实现了一下,里面涉及到python编程、docker、k8s的使用,image recognition模型不涉及训练,使用的是开源模型,下次自己train个模型出来看看效果^_^。
代码托管在github。
测试一下代码是否可用
1 | # 安装依赖模块,南七技校的pip源比较好用 |
首次运行代码后,需要等待一段时间,因为要下载图片识别的模型
制作docker镜像
1 | sudo docker build -t keras-app:latest . |
出现如下提示则镜像制作成功1
2
3
4
5Successfully built pyyaml gast absl-py termcolor MarkupSafe
...
...
Removing intermediate container 3a21aa77c06c
Successfully built fc03d48b4096
查看一下镜像信息:1
2
3[conan@localhost deeplearning_flask]$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
keras-app latest fc03d48b4096 43 minutes ago 1.7 GB
Size 1.7G,Dockerfile中可以修改python基础镜像为pythom3.6-slim进行瘦身.
测试docker镜像
1 | # 运行 |
在kubernetes上调度
使用k8s集群部署应用,推荐使用yaml文件,前置条件是把刚刚的镜像push到k8s使用的镜像仓库中
这里使用简单一点的deployment方式来部署imagerecon_deployment_test_for_fun.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21apiVersion: apps/v1
kind: Deployment
metadata:
name: imagerecon-deployment
labels:
app: imagerecon
spec:
replicas: 1
selector:
matchLabels:
app: imagerecon
template:
metadata:
labels:
app: imagerecon
spec:
containers:
- name: imagerecon
image: keras-app:latest
ports:
- containerPort: 2400
部署1
2
3kubectl create -f imagerecon_deployment_test_for_fun.yaml
# 查看
kubectl get pods --show-labels
参考资料
原文作者: kiddie92
原文链接: https://kiddie92.github.io/2018/12/06/图片识别app从keras-flask代码到kubernetes部署/
许可协议: 知识共享署名-非商业性使用4.0国际许可协议