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 验证安装状态
安装完不等于万事大吉。我习惯做三件事来验证:
- 检查 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,说明核心组件正常。
- 检查 CRD 是否注册
kubectl get crd | grep istio
你会看到一堆 Istio 相关的 CRD,比如 virtualservices.networking.istio.io、destinationrules.networking.istio.io 等等。数量一般在 20 个左右。
- 检查 sidecar 注入是否正常
kubectl label namespace default istio-injection=enabled
kubectl run test --image=nginx
kubectl get pods
如果看到 2/2 的 READY 状态,说明 sidecar 自动注入成功了。嗯,这一步很关键——很多同学装完 Istio 发现 sidecar 没注入,其实就是忘了给 namespace 打标签。
4.5 知识体系总览
下面这张图帮你理清整个安装流程的逻辑:
说白了,安装 Istio 就四步:下载工具、选 Profile、执行安装、验证。每一步都不难,但每一步都有坑。我建议你装完后,花 5 分钟把验证跑一遍,别急着往下走。
好,安装就到这里。下一节我们聊聊如何配置 Istio 的流量管理规则,让服务网格真正跑起来。
公众号:蓝海资料掘金营,微信deep3321