繁体   English   中英

如何在 OpenShift 中同时部署两个版本的微服务?

[英]How can I deploy two versions of a microservice at the same time in OpenShift?

我正在关注 Service Mesh 的 ISTIO 教程,但在复制他们执行的步骤之一时遇到了问题。

https://docs.huihoo.com/microservices/introducing-istio-service-mesh-for-microservices.pdf

他们有一个名为 Recommendation 的 Java 应用程序,他们部署了两次。

docker build -t example/recommendation:v1 .
docker build -t example/recommendation:v2 .

我有一个 Java 应用程序 TEST,部署在 OpenShift 中,我想复制和更改版本,所以我有 TEST-V1 和 TEST-V2。 我该怎么做? 我是否需要使用不同的 Deployment.yaml 两次部署应用程序?

提前致谢。

首先,你的命令:

docker build -t example/recommendation:v1 .
docker build -t example/recommendation:v2 .

不是部署 你所做的是构建 docker image

这是为第一个示例部署服务的行:

oc apply -f <(istioctl kube-inject -f \ src/main/kubernetes/Deployment.yml) -n tutorial

第二:

最后,注入 Istio sidecar 代理并将其部署到 Kubernetes:

oc apply -f <(istioctl kube-inject -f \ src/main/kubernetes/Deployment-v2.yml) -n tutorial

如果您更改版本,您会问是否需要部署2次。 首先,您需要知道您正在对容器进行操作。 docker build命令会为您创建一个容器,稍后您将使用该容器。 如果您创建应用程序的新版本,您应该创建一个新容器。 它们相似但不完全相同。 这意味着,从 OpenShift / Kubernetes 的角度来看,它们是完全不同的 docker 镜像。 每次更改容器映像时,都需要部署到 Kubernetes / OpenShift。 您需要为每个 docker 映像更改执行一次。

我该怎么做? 我是否需要使用不同的 Deployment.yaml 两次部署应用程序?

基本上 - 是的。 最后,您需要的是指向不同 Pod 的两个服务端点。 您可以将服务端点放在同一个部署文件中,但为了稳健起见,我将使用完全不同的部署。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM