下载 Istio

下载 Istio

文档Sidecar 模式入门入门 7 分钟阅读 页面测试

下载 Istio安装 Istio安装 Kubernetes 网关 API CRD部署示例应用程序将应用程序开放到外部流量访问应用程序查看仪表盘下一步加入 Istio 社区卸载另请参阅想要探索 Istio 的 环境模式 吗?请访问 环境模式入门 指南!本指南可让您快速评估 Istio。如果您已经熟悉 Istio 或有兴趣安装其他配置配置文件或高级 部署模型,请参阅我们的 我应该使用哪种 Istio 安装方法? 常见问题解答页面。

您需要一个 Kubernetes 集群才能继续。如果您没有集群,可以使用 kind 或任何其他 受支持的 Kubernetes 平台。

按照以下步骤开始使用 Istio

下载并安装 Istio安装 Kubernetes 网关 API CRD部署示例应用程序将应用程序开放到外部流量查看仪表盘下载 Istio转到 Istio 版本 页面下载适合您的操作系统的安装文件,或者 自动下载并解压缩最新版本(Linux 或 macOS)

$ curl -L https://istio.ac.cn/downloadIstio | sh -

移动到 Istio 包目录。例如,如果包名为 istio-1.24.0

$ cd istio-1.24.0

安装目录包含

samples/ 中的示例应用程序bin/ 目录中的 istioctl 客户端二进制文件。将 istioctl 客户端添加到您的路径(Linux 或 macOS)

$ export PATH=$PWD/bin:$PATH

安装 Istio在本指南中,我们使用 demo 配置配置文件。选择它是为了拥有用于测试的一组良好的默认值,但还有其他配置文件用于生产、性能测试或 OpenShift。

与 Istio 网关 不同,创建 Kubernetes 网关 默认情况下也会 部署网关代理服务器。由于它们不会被使用,因此我们禁用了默认 Istio 网关服务的部署,这些服务通常作为 demo 配置文件的一部分安装。

使用 demo 配置文件安装 Istio,不带任何网关

Zip$ istioctl install -f @samples/bookinfo/demo-profile-no-gateways.yaml@ -y

✔ Istio core installed

✔ Istiod installed

✔ Installation complete

Made this installation the default for injection and validation.

添加命名空间标签以指示 Istio 在您稍后部署应用程序时自动注入 Envoy 边车代理

$ kubectl label namespace default istio-injection=enabled

namespace/default labeled

安装 Kubernetes 网关 API CRD大多数 Kubernetes 集群默认情况下不安装 Kubernetes 网关 API CRD,因此请确保在使用网关 API 之前安装它们。

安装网关 API CRD(如果尚未安装)

$ kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \

{ kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd?ref=v1.2.0" | kubectl apply -f -; }

部署示例应用程序您已将 Istio 配置为将边车容器注入到您在 default 命名空间中部署的任何应用程序中。

部署 Bookinfo 示例应用程序

$ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/platform/kube/bookinfo.yaml

service/details created

serviceaccount/bookinfo-details created

deployment.apps/details-v1 created

service/ratings created

serviceaccount/bookinfo-ratings created

deployment.apps/ratings-v1 created

service/reviews created

serviceaccount/bookinfo-reviews created

deployment.apps/reviews-v1 created

deployment.apps/reviews-v2 created

deployment.apps/reviews-v3 created

service/productpage created

serviceaccount/bookinfo-productpage created

deployment.apps/productpage-v1 created

应用程序将启动。当每个 Pod 准备好时,Istio 边车将与其一起部署。

$ kubectl get services

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

details ClusterIP 10.0.0.212 9080/TCP 29s

kubernetes ClusterIP 10.0.0.1 443/TCP 25m

productpage ClusterIP 10.0.0.57 9080/TCP 28s

ratings ClusterIP 10.0.0.33 9080/TCP 29s

reviews ClusterIP 10.0.0.28 9080/TCP 29s

$ kubectl get pods

NAME READY STATUS RESTARTS AGE

details-v1-558b8b4b76-2llld 2/2 Running 0 2m41s

productpage-v1-6987489c74-lpkgl 2/2 Running 0 2m40s

ratings-v1-7dc98c7588-vzftc 2/2 Running 0 2m41s

reviews-v1-7f99cc4496-gdxfn 2/2 Running 0 2m41s

reviews-v2-7d79d5bd5d-8zzqd 2/2 Running 0 2m41s

reviews-v3-7dbcdcbc56-m8dph 2/2 Running 0 2m41s

请注意,Pod 显示 READY 2/2,确认它们已拥有应用程序容器和 Istio 边车容器。

通过检查响应中的页面标题来验证应用程序是否在集群中运行

$ kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -sS productpage:9080/productpage | grep -o ".*"

Simple Bookstore App

将应用程序开放到外部流量Bookinfo 应用程序已部署,但无法从外部访问。要使其可访问,您需要创建一个入口网关,该网关将路径映射到网格边缘的路由。

为 Bookinfo 应用程序创建一个 Kubernetes 网关

Zip$ kubectl apply -f @samples/bookinfo/gateway-api/bookinfo-gateway.yaml@

gateway.gateway.networking.k8s.io/bookinfo-gateway created

httproute.gateway.networking.k8s.io/bookinfo created

默认情况下,Istio 为网关创建 LoadBalancer 服务。由于我们将通过隧道访问此网关,因此我们不需要负载均衡器。如果您想了解如何为外部 IP 地址配置负载均衡器,请阅读 入口网关 文档。

通过为网关添加注释将其服务类型更改为 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://:8080/productpage 以查看 Bookinfo 应用程序。

Bookinfo 应用程序如果刷新页面,您应该会看到书籍评论和评分发生变化,因为请求分布在 reviews 服务的不同版本之间。

查看仪表盘Istio 与 多个不同的遥测应用程序 集成。这些可以帮助您了解服务网格的结构、显示网格的拓扑结构并分析网格的运行状况。

使用以下说明部署 Kiali 仪表盘,以及 Prometheus、Grafana 和 Jaeger。

安装 Kiali 和其他加载项 并等待它们部署。

$ kubectl apply -f samples/addons

$ kubectl rollout status deployment/kiali -n istio-system

Waiting for deployment "kiali" rollout to finish: 0 of 1 updated replicas are available...

deployment "kiali" successfully rolled out

访问 Kiali 仪表盘。

$ istioctl dashboard kiali

在左侧导航菜单中,选择图形,并在命名空间下拉列表中选择default。

要查看跟踪数据,您必须向您的服务发送请求。请求数量取决于 Istio 的采样率,可以使用 遥测 API 配置。使用 1% 的默认采样率,您需要发送至少 100 个请求才能看到第一个跟踪。要向 productpage 服务发送 100 个请求,请使用以下命令

$ for i in $(seq 1 100); do curl -s -o /dev/null "http://$GATEWAY_URL/productpage"; done

Kiali 仪表盘显示了网格的概述,其中包含 Bookinfo 示例应用程序中服务之间的关系。它还提供过滤器以可视化流量流。

Kiali 仪表盘下一步恭喜您完成评估安装!

这些任务是初学者进一步使用此 demo 安装评估 Istio 功能的好地方

请求路由故障注入流量转移查询指标可视化指标访问外部服务可视化您的网格在您为生产使用定制 Istio 之前,请参阅以下资源

部署模型部署最佳实践Pod 要求通用安装说明加入 Istio 社区我们欢迎您加入 Istio 社区,提出问题并提供反馈。

卸载要删除 Bookinfo 示例应用程序及其配置,请参阅 Bookinfo 清理。

Istio 卸载会删除 istio-system 命名空间下所有资源的 RBAC 权限和所有资源。您可以安全地忽略不存在的资源的错误,因为它们可能已按层次结构删除。

Zip$ kubectl delete -f @samples/addons@

$ istioctl uninstall -y --purge

istio-system 命名空间不会默认删除。如果不再需要,请使用以下命令将其删除

$ kubectl delete namespace istio-system

指示 Istio 自动注入 Envoy 边车代理的标签不会默认删除。如果不再需要,请使用以下命令将其删除

$ kubectl label namespace default istio-injection-

如果您安装了 Kubernetes 网关 API CRD,现在想要将其删除,请运行以下命令之一

如果您运行了需要 实验版本 CRD 的任何任务

$ kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd/experimental?ref=v1.2.0" | kubectl delete -f -

否则

$ kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd?ref=v1.2.0" | kubectl delete -f -

另请参阅在没有网关 API 的情况下入门

使用 Istio 的旧版 API 尝试 Istio 的功能。

安装网关

安装和定制 Istio 网关。

Istio 中的 Kubernetes 原生边车

使用 Istio 演示新的 SidecarContainers 功能。

Kubernetes 网关 API 入门

使用网关 API 为您的 Kubernetes 集群配置入口流量。

扩展 Istio 中的网关 API 支持

用于服务网格的标准 API,在 Istio 和更广泛的社区中。

在网格外部部署 Istio 控制平面

Istio 的一种新的部署模型。

🎯 相关推荐

鱼缸氧气泵哪个好哪个便宜?10大品牌实测推荐!老手都夸的神器
宾利车价格表2024宾利全系车型大幅降价
365bet皇冠体

宾利车价格表2024宾利全系车型大幅降价

📅 08-20 👀 6047
怀孕可以吃燕窝吗, 有什么好处
365bet皇冠体

怀孕可以吃燕窝吗, 有什么好处

📅 11-10 👀 7499