在 Kubernetes 上部署一个深度学习模型( 二 )


构建Docker容器:
sudodockerbuild-tkubermatic-dl:latest.这条命令使用kubermatic-dl镜像为你当前工作目录的代码创建了一个容器 。
使用
sudodockerrun-d-p5000:5000kubermatic-dl命令检查你的容器可以在你的主机上正常运行 。
使用
sudodockerps-a命令查看你本地容器的运行状态:
将你的模型上传到DockerHub
在向Kubernetes上部署模型前 , 你的镜像首先需要是公开可用的 。 你可以通过将你的模型上传到DockerHub来将它公开 。 (如果你没有DockerHub的账号 , 你需要先创建一个)
在终端中登录DockerHub账号:
sudodockerlogin给你的镜像打上标签 , 这样你的模型上传到DockerHub后也能拥有版本信息:
sudodockertag使用
sudodockerimages命令检查你的镜像的ID 。
部署你的模型到Kubernetes集群
首先在KubermaticKubernetes平台创建一个项目,然后根据快速开始创建一个Kubernetes集群 。
在 Kubernetes 上部署一个深度学习模型
文章图片
下载用于访问你的集群的kubeconfig , 将它放置在下载目录中 , 并记得设置合适的环境变量 , 使得你的环境能找到它:
在 Kubernetes 上部署一个深度学习模型
文章图片
使用kubectl命令检查集群信息 , 例如 , 需要检查kube-system是否在你的集群正常启动了就可以使用命令kubectlcluster-info
为了在集群中运行容器 , 你需要创建一个部署用的配置文件(deployment.yaml) , 再运行apply命令将其应用于集群中:
apiVersion:apps/v1kind:Deploymentmetadata:name:kubermatic-dl-deploymentspec:selector:matchLabels:app:kubermatic-dlreplicas:3template:metadata:labels:app:kubermatic-dlspec:containers:-name:kubermatic-dlimage:kubermatic00/kubermatic-dl:latestimagePullPolicy:Alwaysports:-containerPort:8080kubectlapply-fdeployment.yaml`为了将你的部署开放到公网环境 , 你需要一个能够给你的容器创建外部可达IP地址的服务:
kubectlexposedeploymentkubermatic-dl-deployment--type=LoadBalancer--port80--target-port5000`就快大功告成了!首先检查你布署的服务的状态 , 然后通过IP请求的你图像识别API:
kubectlgetservice最后根据你的外部IP使用以下两张图片对你的图像识别服务进行测试:
在 Kubernetes 上部署一个深度学习模型
文章图片
在 Kubernetes 上部署一个深度学习模型
文章图片
总结
在这篇教程中 , 你可以创建一个深度学习模型 , 并且使用Flask提供RESTAPI服务 。 它介绍了如何将应用放在Docker容器中 , 如何将这个镜像上传到DockerHub中 , 以及如何使用Kubernetes部署你的服务 。 只需几个简单的命令 , 你就可以使用KubermaticKubernetes平台部署该应用程序 , 并且开放服务给别人使用 。
via:https://opensource.com/article/20/9/deep-learning-model-kubernetes
作者:ChaimaaZyani选题:lujun9972译者:chunibyo-wly校对:wxy
本文由LCTT原创编译 , Linux中国荣誉推出