2. 环境准备:Kubernetes集群版本要求、Istio版本选择、kubectl与istioctl工具安装
在进行Istio故障注入测试之前,必须搭建一套符合版本兼容性要求的实验环境。本章将明确Kubernetes与Istio的版本匹配关系,并指导完成命令行工具的安装与验证。
2.1 Kubernetes集群版本要求
Istio对Kubernetes集群版本有严格的依赖。根据Istio 1.20+的官方支持矩阵,建议使用以下版本范围:
| Istio版本 | 最低Kubernetes版本 | 推荐Kubernetes版本 | 备注 |
|---|---|---|---|
| 1.20.x | 1.25 | 1.27 – 1.29 | 长期支持(LTS)推荐 |
| 1.21.x | 1.26 | 1.28 – 1.30 | 最新特性支持 |
| 1.22.x(最新) | 1.27 | 1.29 – 1.31 | 建议用于新项目 |
建议:本课程实验环境选用 Kubernetes 1.29 + Istio 1.21 组合,该组合经过广泛验证,稳定性与功能完整性最佳,且与故障注入相关的VirtualService、DestinationRule API版本完全兼容。
2.2 Istio版本选择策略
选择Istio版本时需考虑以下三个维度:
- 功能需求:故障注入(Fault Injection)自Istio 1.5起已稳定,但较新版本提供了更精细的
percentage控制和abort状态码扩展。 - 安全补丁:始终选择当前仍在安全更新窗口内的次版本(如1.21.x而非1.20.x)。
- 生态兼容:确认所选版本与Kubernetes API Server的认证授权机制(RBAC、PSP/PSS)兼容。
版本锁定原则:在生产环境中,建议将Istio控制面版本锁定在
1.21.x 系列,数据面Sidecar版本可略低于控制面(如1.20.x),以降低升级风险。
2.3 kubectl与istioctl工具安装
2.3.1 kubectl安装
kubectl是操作Kubernetes集群的核心CLI工具。以下为Linux环境下的标准安装步骤:
# 下载最新稳定版kubectl(以v1.29为例)
curl -LO "https://dl.k8s.io/release/v1.29.0/bin/linux/amd64/kubectl"
# 赋予执行权限并移动到PATH目录
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
# 验证安装
kubectl version --client
# 配置集群访问(假设已有kubeconfig文件)
kubectl config use-context your-cluster-context
2.3.2 istioctl安装
istioctl是Istio的专属管理工具,用于安装控制面、注入Sidecar以及调试配置。推荐使用官方脚本安装:
# 下载指定版本的istioctl(以1.21.0为例)
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.21.0 sh -
# 将istioctl加入PATH
cd istio-1.21.0
export PATH=$PWD/bin:$PATH
# 验证安装
istioctl version
# 启用自动补全(可选)
source <(istioctl completion bash)
注意:istioctl的版本必须与即将安装的Istio控制面版本一致。使用
istioctl install 时,默认安装与CLI相同版本的Istio。若需安装不同版本,请使用 --set tag=1.20.2 参数显式指定。
2.4 环境验证清单
完成工具安装后,执行以下命令验证环境就绪:
# 1. 检查kubectl能否正常访问集群
kubectl cluster-info
# 2. 检查节点状态
kubectl get nodes -o wide
# 3. 检查istioctl版本与集群兼容性
istioctl x precheck
# 4. 确认kubeconfig上下文正确
kubectl config current-context
预期输出应显示所有节点处于 Ready 状态,且 istioctl x precheck 无错误或警告。
2.5 环境架构总览
下图展示了本课程实验环境的整体组件关系:
2.6 版本兼容性速查表
以下表格汇总了本课程实验环境的关键版本信息,供后续章节参考:
| 组件 | 选定版本 | 安装方式 | 验证命令 |
|---|---|---|---|
| Kubernetes | 1.29.0 | kubeadm / 云托管 | kubectl version --short |
| Istio | 1.21.0 | istioctl install | istioctl version |
| kubectl | v1.29.0 | 二进制下载 | kubectl version --client |
| istioctl | 1.21.0 | 官方脚本 | istioctl version |