将整体应用程序转换为 Kubernetes 中的微服务实现
Convert monolith application to microservice implementation in Kubernetes
我想使用基于 Kubernetes 的部署在云中部署我的应用程序。它由 3 层 Kafka、Ignite(作为 DB 和处理)和 Python(ML 引擎)组成。
我们从 Kafka 层获得数据流输入,然后将其传递给 Ignite 进行处理(功能 engg)。处理后的数据被传递给 python
服务器进行进一步的 ML 预测。在 Kubernetes 中如何将这个整体应用程序分解为微服务?
使用 Istio 也可以提供一些优势吗?
这是可能的,事实上这些工具很容易部署在 Kubernetes 中。首先,您需要掌握一些 Kubernetes 基础知识,特别是 statefulsets and persistent volumes,因为 Kafka 和 Ignite 是有状态组件。
要在 Kubernetes 中部署 Kafka 集群,请遵循此存储库中的说明:https://github.com/Yolean/kubernetes-kafka
还有其他选择,但这是我在生产环境中测试过的唯一选择。
我没有使用 Ignite 的经验,此 docs 提供了分步指南。也许其他人可以分享其他资源。
关于 Python,只需将您的 ML 模型与任何其他 Python 应用程序一样进行 docker 化。在 official docker image for Python you'll find a basic Dockerfile to do that. Once you have your docker image pushed to a registry, just create a YAML file describing the deployment 并将其应用于 Kubernetes。
作为最后一步的替代方法,您可以使用 Draft 对 Python 代码进行 docker 化和部署。
祝你好运!
如果您想要预构建映像,可以使用来自 bitnami 的 docker hub 上的 bitnami/kafka。
使用 gcloud 命令将映像导出到您的容器注册表。
gcloud docker -- push [你的镜像容器注册表路径]
使用 UI or gcloud command
部署映像
暴露端口{2181 9092-9099}或者部署到kubernetes后在拉取的镜像中暴露哪个。
这是 Google Compute 上的 Ignite 镜像的 link,您只需将其部署在 kubernetes 引擎上并公开适当的端口
对于 python,您只需按照 ignacio 的建议使用 docker 文件构建您的 python 应用程序。
我想使用基于 Kubernetes 的部署在云中部署我的应用程序。它由 3 层 Kafka、Ignite(作为 DB 和处理)和 Python(ML 引擎)组成。 我们从 Kafka 层获得数据流输入,然后将其传递给 Ignite 进行处理(功能 engg)。处理后的数据被传递给 python 服务器进行进一步的 ML 预测。在 Kubernetes 中如何将这个整体应用程序分解为微服务? 使用 Istio 也可以提供一些优势吗?
这是可能的,事实上这些工具很容易部署在 Kubernetes 中。首先,您需要掌握一些 Kubernetes 基础知识,特别是 statefulsets and persistent volumes,因为 Kafka 和 Ignite 是有状态组件。
要在 Kubernetes 中部署 Kafka 集群,请遵循此存储库中的说明:https://github.com/Yolean/kubernetes-kafka
还有其他选择,但这是我在生产环境中测试过的唯一选择。
我没有使用 Ignite 的经验,此 docs 提供了分步指南。也许其他人可以分享其他资源。
关于 Python,只需将您的 ML 模型与任何其他 Python 应用程序一样进行 docker 化。在 official docker image for Python you'll find a basic Dockerfile to do that. Once you have your docker image pushed to a registry, just create a YAML file describing the deployment 并将其应用于 Kubernetes。
作为最后一步的替代方法,您可以使用 Draft 对 Python 代码进行 docker 化和部署。
祝你好运!
如果您想要预构建映像,可以使用来自 bitnami 的 docker hub 上的 bitnami/kafka。
使用 gcloud 命令将映像导出到您的容器注册表。 gcloud docker -- push [你的镜像容器注册表路径] 使用 UI or gcloud command
部署映像暴露端口{2181 9092-9099}或者部署到kubernetes后在拉取的镜像中暴露哪个。
这是 Google Compute 上的 Ignite 镜像的 link,您只需将其部署在 kubernetes 引擎上并公开适当的端口
对于 python,您只需按照 ignacio 的建议使用 docker 文件构建您的 python 应用程序。