部署 Online Boutique 应用
在集群和 Istio 准备好后,我们可以克隆在 Online Boutique 应用库。
1. 克隆仓库
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
2. 前往 microservices-demo
目录
cd microservices-demo
3. 创建 Kubernetes 资源
kubectl apply -f release/kubernetes-manifests.yaml
4. 检查所有 Pod 都在运行
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
adservice-5c9c7c997f-n627f 2/2 Running 0 2m15s
cartservice-6d99678dd6-767fb 2/2 Running 2 2m16s
checkoutservice-779cb9bfdf-l2rs9 2/2 Running 0 2m18s
currencyservice-5db6c7d559-9drtc 2/2 Running 0 2m16s
emailservice-5c47dc87bf-dk7qv 2/2 Running 0 2m18s
frontend-5fcb8cdcdc-8c9dk 2/2 Running 0 2m17s
loadgenerator-79bff5bd57-q9qkd 2/2 Running 4 2m16s
paymentservice-6564cb7fb9-f6dwr 2/2 Running 0 2m17s
productcatalogservice-5db9444549-hkzv7 2/2 Running 0 2m17s
recommendationservice-ff6878cf5-jsghw 2/2 Running 0 2m18s
redis-cart-57bd646894-zb7ch 2/2 Running 0 2m15s
shippingservice-f47755f97-dk7k9 2/2 Running 0 2m15s
5. 创建 Istio 资源
kubectl apply -f ./istio-manifests
部署了一切后,我们就可以得到入口网关的 IP 地址并打开前端服务:
INGRESS_HOST="$(kubectl -n istio-system get service istio-ingressgateway \
-o jsonpath='{.status.loadBalancer.ingress[0].ip}')"
echo "$INGRESS_HOST"
在浏览器中打开 INGRESS_HOST
,你会看到前端服务,如下图所示。
我们需要做的最后一件事是删除 frontend-external
服务。frontend-external
服务是一个 LoadBalancer 服务,它暴露了前端。由于我们正在使用 Istio 的入口网关,我们不再需要这个 LoadBalancer 服务了。
要删除服务,运行:
kubectl delete svc frontend-external
Online Boutique 应用清单还包括一个负载发生器,它正在生成对所有服务的请求——这是为了让我们能够模拟网站的流量。