开始使用 Istio 和 Kubernetes Gateway API
本指南可以让您快速熟悉 Istio。如果您已经熟悉了 Istio 或想要安装其他配置文件或高级的部署模型8, 请参阅 FAQ 页面:我应该使用哪种 Istio 安装方法?。
这些步骤需要您有一个运行 Kubernetes (1.25, 1.26, 1.27, 1.28) 所支持版本9的 cluster。您可以使用任意受支持的平台,例如
Minikube10 或特定平台安装说明11中指定的其他平台。遵循以下步骤开始使用 Istio:
下载 Istio
转到 Istio 发布12页面下载适合您操作系统的安装文件, 或下载并自动解压最新的版本(Linux 或 macOS):
切换到 Istio 文件包目录。例如,如果文件包是
istio-1.19.4
:安装目录包含:
- 位于
samples/
中的样例应用 - 位于
bin/
目录中的istioctl
13 客户端二进制文件。
- 位于
添加
istioctl
客户端到您的路径(Linux 或 macOS):
安装 Istio
本次安装使用
demo
配置文件14。 这个配置文件包含了便于测试的一组默认值,当然您可以使用其他配置文件用于生产或性能测试。与 Istio Gateways 不同, 创建 Kubernetes Gateways15 将默认部署关联的网关代理服务。 因为本例不会使用这些服务,所以将禁用默认的 Istio 网关服务, 这些默认服务通常是作为
demo
配置文件的一部分被安装的。添加命名空间标签,指示 Istio 在您稍后部署应用时自动注入 Envoy Sidecar 代理:
部署样例应用
部署
Bookinfo
样例应用17:此应用将启动。随着每个 Pod 就绪,Istio Sidecar 将随之被部署。
还有
确认到此为止一切运行良好。执行以下命令通过检查响应中的页面标题查看应用是否在集群内运行且正在提供 HTML 页面:
打开应用并允许对外流量
Bookinfo 应用已被部署但还不能从外部进行访问。 要使其能够被访问,您需要创建 Ingress Gateway,将路径映射到网格边缘处的某个路由。
为 Bookinfo 应用创建 Kubernetes Gateway15:
因为创建 Kubernetes
Gateway
资源也会部署关联的代理服务, 所以执行以下命令等到 Gateway 就绪:确保配置没有问题:
确定 Ingress IP 和端口
设置访问网关的
INGRESS_HOST
和INGRESS_PORT
变量:设置
GATEWAY_URL
:确保 IP 地址和端口均被成功分配给了环境变量:
验证外部访问
通过浏览器查看 Bookinfo 产品页面,确认能从集群外访问 Bookinfo 应用。
执行以下命令检索 Bookinfo 应用的对外地址。
将上一条命令的输出粘贴到您的 Web 浏览器中,确认 Bookinfo 产品页面显示正常。
查看仪表板
Istio 集成了几种20不同的遥测应用。 这些可以帮助您了解服务网格的结构,能够显示网格的拓扑,还能分析网格的健康状况。
参阅以下指示说明部署 Kiali21 仪表板, 以及 Prometheus22、 Grafana23 和 Jaeger24。
安装 Kiali 和其他插件25并等待其完成部署。
访问 Kiali 仪表板。
在左侧导航菜单中,从 Namespace 下拉菜单中选择 Graph,选择 default。
Kiali 仪表板显示了网格的概述以及
Bookinfo
样例应用中服务之间的关系。 Kiali 还能过滤显示流量。Kiali Dashboard
下一步
恭喜完成了评估安装!
以下任务便于初学者使用这个 demo
安装进一步评估 Istio 的功能特性:
自定义 Istio 用于生产之前,请参阅以下资源:
加入 Istio 社区
欢迎您加入 Istio 社区35提问和给出反馈。
卸载
要删除 Bookinfo
样例应用及其配置,请参阅
Bookinfo
清理。
卸载 Istio 时将删除 RBAC 权限和 istio-system
命名空间下的所有资源层次结构。
可以安全地忽略不存在资源的错误,因为它们可能已经被按层次结构删除了。
istio-system
命名空间默认未被移除。如果不再需要,请执行以下命令将其移除:
指示 Istio 自动注入 Envoy Sidecar 代理的标签默认未被移除。 如果不再需要,执行以下命令将其移除: