istio 安装包含五步:下载解压安装包并配置 istioctl;用 istioctl install 部署控制平面(支持 default/demo 剖面);验证 istio-system 下 service 与 pod 状态;为命名空间启用自动注入并部署 bookinfo 应用;通过 gateway 和 virtualservice 暴露服务。

一、下载并解压 Istio 安装包
获取 Istio 二进制分发包是安装的第一步,需从官方渠道拉取最新稳定版本,确保组件完整性与安全性。解压后可直接使用其中的 istioctl 工具进行后续操作。
1、执行命令下载最新版 Istio 安装脚本:
curl -L https://istio.io/download/latest | sh -
2、进入解压生成的目录(目录名形如 istio-1.21.0):
cd istio-*
3、将 istioctl 添加至系统 PATH:
export PATH=$PWD/bin:$PATH
二、通过 istioctl 安装 Istio 控制平面
使用 istioctl install 命令可将 Istio 核心组件部署至已就绪的 Kubernetes 集群中,支持多种配置剖面以适配不同环境需求。
1、安装默认配置剖面:
istioctl install --set profile=default -y
2、若需启用遥测与可视化组件(如 Kiali、Grafana),改用 demo 剖面:
istioctl install --set profile=demo -y
3、如需自定义命名空间(非默认 istio-system),添加 --revision 参数并配合 istio.io/rev 标签使用。
三、验证 Istio 核心组件运行状态
确认控制平面各服务与 Pod 是否正常就绪,是判断安装是否成功的直接依据。所有关键资源应处于 Running 或 Ready 状态。
1、检查 istio-system 命名空间下的 Service 资源:
kubectl get svc -n istio-system
2、检查同命名空间下所有 Pod 的运行状态:
kubectl get pods -n istio-system
3、重点确认以下 Pod 处于 Running 状态:istiod、istio-ingressgateway、istio-egressgateway(如启用)。
四、注入 Sidecar 并部署示例应用 Bookinfo
启用自动或手动 Sidecar 注入,使应用 Pod 被注入 Envoy 代理,从而纳入 Istio 服务网格治理范围。Bookinfo 是官方提供的多语言微服务演示应用,用于快速验证流量管理能力。
1、为 default 命名空间启用自动注入:
kubectl label namespace default istio-injection=enabled
2、部署 Bookinfo 应用清单:
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
3、验证全部 4 个服务的 Pod 是否均含 2/2 Ready 状态(即主容器 + istio-proxy 容器):
kubectl get pods
五、暴露应用服务:配置 Istio Ingress Gateway
Istio Ingress Gateway 是网格入口的专用网关资源,替代传统 Kubernetes Ingress,提供 TLS 终止、虚拟主机路由等高级能力。必须显式声明 Gateway 和 VirtualService 才能对外暴露服务。
1、部署默认 Ingress Gateway 资源:
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
2、设置网关访问地址变量:
export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
3、确认网关响应可用:
curl -sI http://$INGRESS_HOST/productpage | head -1









