我想使用基于Kubernetes的部署在云中部署我的应用程序。它由3层Kafka,Ignite(作为DB和处理)和Python(ML引擎)组成。 从Kafka层我们得到数据流输入,然后传递给Ignite进行处理(feature engg)。处理完数据后传递给python 用于进一步ML预测的服务器。如何将这个monolith应用程序分解为Kubernetes中的微服务? 也可以使用Istio提供一些优势吗?
答案 0 :(得分:1)
如果要预构建图像,可以在bitnami上的docker hub 上使用bitnami / kafka。
使用gcloud命令将映像导出到容器注册表。 gcloud docker-推送[您的图像容器注册表路径] 使用UI或gcloud command
部署映像暴露端口{2181 9092-9099}或在kubernetes上部署后在拉出的映像中暴露的端口。
这是Google Compute上Ignite映像的link,您只需将其部署在kubernetes引擎上并公开相应的端口
对于python,您只需按照ignacio的建议使用dockerfile构建python应用。
答案 1 :(得分:0)
这是可能的,事实上这些工具很容易在Kubernetes中部署。首先,您需要获得Kubernetes基础知识的一些专业知识,特别是statefulsets和persistent volumes,因为Kafka和Ignite是有状态的组件。
要在Kubernetes中部署Kafka群集,请按照此存储库中的说明进行操作:https://github.com/Yolean/kubernetes-kafka
还有其他选择,但这是我在生产环境中测试过的唯一选择。
我没有使用Ignite,docs提供了逐步指导。也许其他人可以分享其他资源。
关于Python,只需将您的ML模型停靠在任何其他Python应用程序中。在official docker image for Python中,你会找到一个基本的Dockerfile来做到这一点。将docker镜像推送到注册表后,只需创建一个描述deployment的YAML文件并将其应用于Kubernetes。
作为最后一步的替代方法,您可以使用Draft来停泊和部署Python代码。
祝你好运!