部署应用程序
要探索 Istio,您将安装示例 Bookinfo 应用程序,该应用程序由四个独立的微服务组成,用于演示各种 Istio 功能。
在本指南中,您将部署 Bookinfo 应用程序并使用入口网关公开 productpage
服务。
部署 Bookinfo 应用程序
首先部署应用程序
$ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/platform/kube/bookinfo.yaml
$ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/platform/kube/bookinfo-versions.yaml
要验证应用程序是否正在运行,请检查 Pod 的状态
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
details-v1-cf74bb974-nw94k 1/1 Running 0 42s
productpage-v1-87d54dd59-wl7qf 1/1 Running 0 42s
ratings-v1-7c4bbf97db-rwkw5 1/1 Running 0 42s
reviews-v1-5fd6d4f8f8-66j45 1/1 Running 0 42s
reviews-v2-6f9b55c5db-6ts96 1/1 Running 0 42s
reviews-v3-7d99fd7978-dm6mx 1/1 Running 0 42s
要从集群外部访问 productpage
服务,您需要配置入口网关。
部署和配置入口网关
您将使用 Kubernetes 网关 API 部署一个名为 bookinfo-gateway
的网关
$ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/gateway-api/bookinfo-gateway.yaml
默认情况下,Istio 为网关创建一个 LoadBalancer
服务。由于我们将通过隧道访问此网关,因此我们不需要负载均衡器。通过注释网关将服务类型更改为 ClusterIP
$ kubectl annotate gateway bookinfo-gateway networking.istio.io/service-type=ClusterIP --namespace=default
要检查网关的状态,请运行
$ kubectl get gateway
NAME CLASS ADDRESS PROGRAMMED AGE
bookinfo-gateway istio bookinfo-gateway-istio.default.svc.cluster.local True 42s
访问应用程序
您将通过刚刚配置的网关连接到 Bookinfo 的 productpage
服务。要访问网关,您需要使用 kubectl port-forward
命令。
$ kubectl port-forward svc/bookinfo-gateway-istio 8080:80
打开您的浏览器并导航到 https://127.0.0.1:8080/productpage
以查看 Bookinfo 应用程序。
如果您刷新页面,您应该会看到书籍评论和评分发生变化,因为请求分布在不同版本的 reviews
服务中。
后续步骤
继续下一节 将应用程序添加到服务网格,并了解如何保护和可视化应用程序之间的通信。