【问题标题】:How can I deploy two versions of a microservice at the same time in OpenShift?如何在 OpenShift 中同时部署两个版本的微服务?
【发布时间】:2021-09-28 23:29:21
【问题描述】:

我正在关注 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 部署应用程序两次?

提前致谢。

【问题讨论】:

    标签: java kubernetes openshift istio


    【解决方案1】:

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

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

    【讨论】:

    • 那么我将使用两种不同的部署!谢谢。
    【解决方案2】:

    首先,你的命令:

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

    不是deployment。 你做的是building 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 次。首先,您需要知道您在containers 上进行操作。 docker build 命令为您创建一个容器,您稍后将使用该容器。如果您创建应用程序的新版本,您应该创建一个新容器。它们相似但不相同。这意味着,从 OpenShift / Kubernetes 的角度来看,它们是完全不同的 docker 镜像。每次更改容器映像时,都需要部署到 Kubernetes / OpenShift。您需要为每个 docker 映像更改执行一次。

    【讨论】:

    • 感谢 asnwer =) 非常详尽和完整。我认为这太明显了,我对此很陌生
    • @shurohige,如果他们有帮助,请react回答。
    猜你喜欢
    • 2010-12-17
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 2015-09-18
    • 2020-07-03
    • 2017-06-07
    • 1970-01-01
    相关资源
    最近更新 更多