我正在关注 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 两次部署应用程序?
提前致谢。
答案 0 :(得分:2)
我该怎么做?我是否需要使用不同的 Deployment.yaml 两次部署应用程序?
基本上 - 是的。最后,您需要的是指向不同 Pod 的两个服务端点。您可以将服务端点放在同一个部署文件中,但为了稳健起见,我会使用完全不同的部署。
答案 1 :(得分:1)
首先,您的命令:
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 映像更改执行一次。