入门
本指南帮您快速评估 Istio。 如果您已经熟悉 Istio,或对安装其他配置类型或高级部署模型5感兴趣, 请参阅我们应该采用哪种 Istio 安装方法? 的 FAQ 页面。
完成下面步骤需要您有一个 cluster, 且运行着兼容版本的 Kubernetes (1.22, 1.23, 1.24, 1.25)。 您可以使用任何支持的平台,例如:
Minikube6 或特定平台安装说明7章节中指定的其他平台。请按照以下步骤开始使用 Istio:
下载 Istio
转到 Istio 发布8 页面,下载针对您操作系统的安装文件, 或用自动化工具下载并提取最新版本(Linux 或 macOS):
转到 Istio 包目录。例如,如果包是
istio-1.16.0
:安装目录包含:
samples/
目录下的示例应用程序bin/
目录下的istioctl
9 客户端二进制文件。
将
istioctl
客户端添加到路径(Linux 或 macOS):
安装 Istio
对于本次安装,我们采用
demo
配置组合10。 选择它是因为它包含了一组专为测试准备的功能集合,另外还有用于生产或性能测试的配置组合。给命名空间添加标签,指示 Istio 在部署应用的时候,自动注入 Envoy 边车代理:
部署示例应用
部署
Bookinfo
示例应用11:应用很快会启动起来。当每个 Pod 准备就绪时,Istio 边车将伴随应用一起部署。
和
确认上面的操作都正确之后,运行下面命令,通过检查返回的页面标题来验证应用是否已在集群中运行,并已提供网页服务:
对外开放应用程序
此时,BookInfo 应用已经部署,但还不能被外界访问。 要开放访问,您需要创建 Istio 入站网关(Ingress Gateway), 它会在网格边缘把一个路径映射到路由。
把应用关联到 Istio 网关:
确保配置文件没有问题:
确定入站 IP 和端口
按照说明,为访问网关设置两个变量:INGRESS_HOST
和 INGRESS_PORT
。
使用标签页,切换到您选用平台的说明:
在新的终端窗口中运行此命令以启动一个 Minikube 隧道,将流量发送到 Istio Ingress Gateway。
这将为 service/istio-ingressgateway
提供一个外部负载均衡器 EXTERNAL-IP
。
设置入站主机和端口:
确保 IP 地址和端口被成功地赋值给了每一个环境变量:
执行下面命令以判断您的 Kubernetes 集群环境是否支持外部负载均衡:
设置 EXTERNAL-IP
的值之后,
您的环境就有了一个外部的负载均衡器,可以将其用作入站网关。
但如果 EXTERNAL-IP
的值为 <none>
(或者一直是 <pending>
状态),
则您的环境则没有提供可作为入站流量网关的外部负载均衡器。
在这个情况下,您还可以用服务(Service)的节点端口访问网关。
依据您的环境,选择相应的说明:
如果您确定您的环境中确实存在外部的负载均衡,请参照下面的说明。
设置入站 IP 地址和端口:
按照下面说明:如果您的环境中没有外部负载均衡器,那就选择一个节点端口来代替。
设置入站的端口:
GKE:
您需要创建防火墙规则,以允许 TCP 流量发送到 ingressgateway
服务地端口。
运行下面的命令,以允许 HTTP 端口或 HTTPS 端口的流量,或两者的流量都允许。
IBM Cloud Kubernetes Service:
Docker For Desktop:
其他环境:
设置环境变量
GATEWAY_URL
:确保 IP 地址和端口均成功地赋值给了环境变量:
验证外部访问
用浏览器查看 Bookinfo 应用的产品页面,验证 Bookinfo 已经实现了外部访问。
运行下面命令,获取 Bookinfo 应用的外部访问地址。
把上面命令的输出地址复制粘贴到浏览器并访问,确认 Bookinfo 应用的产品页面是否可以打开。
查看仪表板
Istio 和几个14遥测应用做了集成。 遥测能帮您了解服务网格的结构、展示网络的拓扑结构、分析网格的健康状态。
使用下面说明部署 Kiali15 仪表板、 以及 Prometheus16、 Grafana17、 还有 Jaeger18。
安装 Kiali 和其他插件19,等待部署完成。
访问 Kiali 仪表板。
在左侧的导航菜单,选择 Graph ,然后在 Namespace 下拉列表中,选择 default 。
Kiali 仪表板展示了网格的概览以及
Bookinfo
示例应用的各个服务之间的关系。 它还提供过滤器来可视化流量的流动。Kiali 仪表板
后续步骤
恭喜您完成了评估安装!
对于新手来说,这些任务是非常好的资源,可以借助 demo
安装更深入评估 Istio 的特性:
在您为了生产系统定制 Istio 之前,参阅这些资源:
加入 Istio 社区
我们欢迎您加入 Istio 社区29, 提出问题,并给我们以反馈。
卸载
删除 Bookinfo
示例应用和配置, 参阅清理 Bookinfo
。
Istio 卸载程序按照层次结构逐级的从 istio-system
命令空间中删除 RBAC 权限和所有资源。对于不存在的资源报错,可以安全的忽略掉,毕竟它们已经被分层地删除了。
命名空间 istio-system
默认情况下并不会被移除。
不需要的时候,使用下面命令移除它:
指示 Istio 自动注入 Envoy 边车代理的标签默认也不移除。 不需要的时候,使用下面命令移除它。