4、安装 Istio:使用 Istioctl 安装,配置 Profile,验证安装状态

好,咱们接着往下走。上一节我们把环境搭好了,集群也跑起来了。现在该请主角登场了——Istio

安装 Istio 的方式有好几种,Helm、Operator、Istioctl。我个人最推荐 Istioctl。为什么?因为它最直接,配置最灵活,出问题了也最容易排查。我在项目中见过太多用 Helm 装到一半卡住的情况,最后还是靠 Istioctl 救场。

4.1 下载 Istioctl

首先,去 Istio 的 GitHub Release 页面下载对应你操作系统的版本。我这里以 Linux 为例:

curl -L https://istio.io/downloadIstio | sh -
cd istio-1.20.3
export PATH=$PWD/bin:$PATH

嗯,这里要注意:版本号。我建议你选最新的稳定版,别追最新。我踩过坑,用了一个刚发布的 rc 版本,结果 sidecar 注入死活不生效,查了两天才发现是 bug。

下载完后,检查一下:

istioctl version

能看到版本号,说明安装工具就绪了。

4.2 选择 Profile

Istio 提供了几种内置的 Profile,说白了就是预置的配置模板。你想想看,生产环境和开发环境的需求能一样吗?

Profile 名称 适用场景 核心组件
default 开发测试 istiod、ingressgateway
demo 功能演示 全组件(含 tracing、kiali)
minimal 最小安装 仅 istiod
remote 多集群 仅控制面代理
empty 自定义 无组件

我个人习惯:开发环境用 default,生产环境用 minimal 然后自己加组件。为什么?因为 demo 装了一堆你可能用不上的东西,比如 Grafana、Jaeger,白白占资源。

小技巧: 你可以用 istioctl profile list 查看所有可用 Profile,用 istioctl profile dump default 看某个 Profile 的具体配置。

4.3 执行安装

选好 Profile 后,安装就一行命令:

istioctl install --set profile=default -y

这里 -y 是跳过确认。如果你不放心,可以先不加 -y,看看它要装什么。

安装过程大概一两分钟。你会看到类似这样的输出:

✔ Istio core installed
✔ Istiod installed
✔ Ingress gateways installed
✔ Installation complete

看到 Installation complete,基本就稳了。

注意: 如果安装过程中报错,别慌。先检查集群状态:kubectl get nodes。我曾经遇到过一次,装到一半卡住,最后发现是集群资源不够——istiod 默认需要 2 核 4G,你想想看,如果你的节点只有 2 核,那肯定跑不起来。

4.4 验证安装状态

安装完不等于万事大吉。我习惯做三件事来验证:

  1. 检查 Pod 状态
kubectl get pods -n istio-system

你应该看到类似:

NAME                                    READY   STATUS    RESTARTS   AGE
istiod-5f4c7d9b7c-8k9j2                 1/1     Running   0          2m
istio-ingressgateway-7d8c9f6b4c-3m2n1   1/1     Running   0          2m

两个 Pod 都 Running,READY 列是 1/1,说明核心组件正常。

  1. 检查 CRD 是否注册
kubectl get crd | grep istio

你会看到一堆 Istio 相关的 CRD,比如 virtualservices.networking.istio.iodestinationrules.networking.istio.io 等等。数量一般在 20 个左右。

  1. 检查 sidecar 注入是否正常
kubectl label namespace default istio-injection=enabled
kubectl run test --image=nginx
kubectl get pods

如果看到 2/2 的 READY 状态,说明 sidecar 自动注入成功了。嗯,这一步很关键——很多同学装完 Istio 发现 sidecar 没注入,其实就是忘了给 namespace 打标签。

核心要点: 安装 Istio 不是终点,验证才是。我建议你把这三步写成脚本,每次装完跑一遍,省心。

4.5 知识体系总览

下面这张图帮你理清整个安装流程的逻辑:

Istio 安装流程总览 1. 下载 Istioctl curl 下载 + 配置 PATH 2. 选择 Profile default / minimal / demo 3. 执行安装 istioctl install 4. 验证安装状态 检查 Pod / CRD / Sidecar 注入 三步验证,缺一不可 常见问题排查 资源不足 / 版本不匹配 namespace 标签遗漏 核心原则:先验证,再信任。每一步都确认无误,再往下走。 Profile 选对,安装省心;验证到位,排障不累

说白了,安装 Istio 就四步:下载工具、选 Profile、执行安装、验证。每一步都不难,但每一步都有坑。我建议你装完后,花 5 分钟把验证跑一遍,别急着往下走。

避坑指南: 我曾经在生产环境装 Istio,选了 demo Profile,结果 ingressgateway 暴露了太多端口,安全审计没过。后来改成 minimal + 手动配置,才搞定。所以,生产环境别偷懒,用 minimal 自己配

好,安装就到这里。下一节我们聊聊如何配置 Istio 的流量管理规则,让服务网格真正跑起来。


公众号:蓝海资料掘金营,微信deep3321