第三篇:《在 Kubernetes 中部署 Istio:安装、配置与 Sidecar 注入》
理解了 Istio 的架构之后是时候亲手搭建一个 Istio 环境了。在 Kubernetes 集群中安装 Istio 有多种方式最常用的是 istioctl 命令行工具和 Helm。本文将详细介绍使用 istioctl 安装 Istio 的完整流程涵盖环境准备、安装配置文件的选型、命名空间 Sidecar 自动注入的配置以及通过 Bookinfo 示例应用验证 Istio 的核心功能。跟着操作你将拥有一个可用的 Istio 服务网格环境。一、环境准备在安装 Istio 之前需要确保以下条件已满足Kubernetes 集群一个可用的 Kubernetes 集群版本 1.19且 kubectl 已配置好与集群的通信。资源充足Istio 控制平面和 Sidecar 代理需要一定的计算资源。建议集群至少分配 4GB 内存和 2 个 CPU 核心。 本地开发建议如果你没有现成的 Kubernetes 集群可以使用 Minikube 或 Kind 在本地快速搭建一个测试环境。Minikube 启动命令minikube start --cpus4 --memory8192。二、使用 istioctl 安装 Istioistioctl 是 Istio 官方提供的命令行工具用于安装、配置和调试 Istio 服务网格。2.1 下载 istioctl# 下载最新版本的 Istiocurl-Lhttps://istio.io/downloadIstio|sh-# 进入 Istio 包目录cdistio-1.23.0# 将 istioctl 添加到 PATHexportPATH$PWD/bin:$PATH 版本选择建议使用最新的稳定版本。你可以访问 Istio 官方发布页面查看当前最新版本号并替换上述命令中的版本号。2.2 验证 istioctlistioctl version如果安装成功会显示客户端版本信息。2.3 安装 IstioIstio 提供了多种安装配置文件Profile每个 Profile 针对不同的使用场景进行了预配置Profile 说明 适用场景demo 功能齐全资源消耗适中包含 Jaeger、Grafana、Kiali 等附加组件 学习与测试推荐default 核心功能不含附加组件 生产环境的最小化部署minimal 仅包含控制平面不含 Ingress/Egress Gateway 自定义部署的基础remote 用于多集群架构中的远程集群 多集群部署对于学习和测试推荐使用 demo Profileistioctlinstall--setprofiledemo-y该命令会在 Kubernetes 集群的 istio-system 命名空间中部署 Istio 控制平面istiod和 Ingress Gateway。⚠️ 生产环境建议生产环境不建议直接使用 demo Profile。建议从 default Profile 开始根据实际需求逐步开启功能并通过 IstioOperator CRD 进行声明式配置管理。2.4 验证安装# 检查 Istio 控制平面 Pod 是否正常运行kubectl get pods-nistio-system# 检查 Istio 服务kubectl get svc-nistio-system预期输出应包含 istiod-xxx PodRunning和 istio-ingressgateway Service。三、配置 Sidecar 自动注入要让 Istio 接管服务的流量需要为每个 Pod 注入 Envoy Sidecar 容器。Istio 提供了自动注入机制大大简化了这一过程。3.1 为命名空间启用自动注入为需要启用服务网格的命名空间添加 istio-injectionenabled 标签# 为 default 命名空间启用自动注入kubectl label namespace default istio-injectionenabled 命名空间隔离建议将启用服务网格的服务放在独立的命名空间中例如 prod、staging 等。通过命名空间标签可以精细控制哪些服务加入网格。3.2 验证自动注入是否生效当命名空间被正确标记后新创建的 Pod 将自动注入 Envoy Sidecar 容器。# 创建一个测试 Podkubectl run nginx--imagenginx:alpine--restartNever# 查看 Pod 中的容器kubectl get pod nginx-ojsonpath{.spec.containers[*].name}预期输出应包含 nginx 和 istio-proxy 两个容器。如果没有 istio-proxy可能是 Pod 创建时命名空间尚未启用注入需要重启 Pod。3.3 手动注入备选方案如果不想为整个命名空间启用自动注入也可以使用 istioctl kube-inject 手动为 Deployment YAML 注入 Sidecaristioctl kube-inject-fdeployment.yaml|kubectl apply-f- 生产建议生产环境推荐使用自动注入因为它与 GitOps 工作流更契合且不需要修改原始的 Deployment YAML。四、部署 Bookinfo 示例应用Bookinfo 是 Istio 官方提供的示例应用用于演示服务网格的各项功能。它是一个简单的图书信息展示系统由四个微服务组成。4.1 部署 Bookinfo 应用确保 default 命名空间已启用自动注入后部署 Bookinfo 应用# 应用 Bookinfo 部署清单kubectl apply-fsamples/bookinfo/platform/kube/bookinfo.yaml4.2 验证部署# 查看所有 Pod每个 Pod 应有 2 个容器业务容器 istio-proxykubectl get pods# 查看服务kubectl get services预期输出应包含 details、productpage、ratings、reviews 四个服务以及各自对应的 Pod。4.3 配置 Ingress Gateway为了让外部能够访问 Bookinfo 应用需要配置 Istio Ingress Gateway# 应用 Ingress Gateway 配置kubectl apply-fsamples/bookinfo/networking/bookinfo-gateway.yaml4.4 访问 Bookinfo 应用方式一端口转发本地测试kubectl port-forward svc/istio-ingressgateway-nistio-system8080:80然后访问 http://localhost:8080/productpage。方式二获取外部 IP如果集群支持 LoadBalancer可以直接获取 Ingress Gateway 的外部 IP# 获取 Ingress Gateway 的外部 IPkubectl get svc istio-ingressgateway-nistio-system然后访问 http://EXTERNAL_IP/productpage。4.5 验证流量管理Bookinfo 应用的 reviews 服务有三个版本v1、v2、v3默认情况下请求会在这三个版本之间轮询。可以观察到每次刷新页面时“Reviews”部分的显示会变化v1 无星标、v2 有黑色星标、v3 有红色星标这证明了 Istio 的负载均衡功能正在工作。五、卸载 Istio如果需要清理 Istio 环境# 卸载 Istioistioctl uninstall--purge-y# 删除 Istio 命名空间kubectl delete namespace istio-system# 删除 Bookinfo 应用kubectl delete-fsamples/bookinfo/platform/kube/bookinfo.yaml六、小结安装方式istioctl install 是最快捷的安装方式demo Profile 适合学习测试。Sidecar 注入为命名空间添加 istio-injectionenabled 标签即可启用自动注入。Bookinfo 示例官方示例应用是验证 Istio 功能的最佳起点。验证要点检查 Pod 中是否包含 istio-proxy 容器以及 Ingress Gateway 是否正常工作。

相关新闻

AI音乐生成实战:Spark项目本地部署与结构化音乐生成解析

AI音乐生成实战:Spark项目本地部署与结构化音乐生成解析

如果你是一位音乐爱好者、内容创作者,或者正在寻找一种高效、低成本的方式为自己的视频或项目制作高质量背景音乐,那么你很可能已经对“AI音乐生成”这个领域产生了兴趣。但面对市面上众多的AI音乐工具,一个核心的痛点始终存在:生…

2026/10/14 7:22:21 阅读更多 →
黄金价格软件国内外价格实时监控超方便

黄金价格软件国内外价格实时监控超方便

软件介绍 GOLDALL,一款黄金价格实时监控工具。最近黄金价格跌得厉害,今天的价格好像已经到866一克了,真的是跌跌不休。如果你也在关注黄金行情,这款软件值得了解一下。 国内外价格实时显示 软件可以同时显示黄金的国内价格和国…

2026/10/14 7:24:39 阅读更多 →
容器化部署中特殊字符处理的性能优化实践

容器化部署中特殊字符处理的性能优化实践

1. 项目背景与核心挑战 这个标题中的"[特殊字符]_容器化部署的性能优化实战"实际上反映了一个非常典型的工程场景——在容器化环境中部署特殊字符处理服务时遇到的性能瓶颈问题。我去年在金融数据清洗项目中就遇到过类似案例,当时处理的是包含大量非ASCII…

2026/10/14 7:16:03 阅读更多 →

最新新闻

8款AI工具助力本科论文写作全流程

8款AI工具助力本科论文写作全流程

1. 项目概述作为一名经历过本科论文写作的过来人,我深知选题难、资料少、时间紧是困扰大多数学生的三大难题。去年帮导师做AI工具测评时,意外发现了一批对论文写作帮助极大的学术平台,经过半年实测,筛选出8个真正能提升效率的AI辅…

2026/10/14 7:24:38 阅读更多 →
GPU利用率从12%到80%:深度学习推理性能优化实战

GPU利用率从12%到80%:深度学习推理性能优化实战

1. 事故现场还原:一个让所有算法工程师血压飙升的夜晚1.1 从“训练快得飞起”到“推理慢如蜗牛”项目上线前的最后一个晚上,整个团队都在做最后的压测。训练阶段一切顺利,模型在验证集上的指标漂亮得让人想发朋友圈。但当我们把模型部署到推理…

2026/10/14 7:24:38 阅读更多 →
OpenClaw跨平台部署实战:Windows/macOS/Linux完整环境搭建指南

OpenClaw跨平台部署实战:Windows/macOS/Linux完整环境搭建指南

OpenClaw 这个框架,我第一次接触是在一次内部自动化脚本大重构的时候。当时手上有个活儿,要同时对接好几个数据源、定时跑批、失败重试,脚本越写越臃肿,日志、异常处理、参数校验全揉在一起,改一个环节就怕动到另一块。…

2026/10/14 7:24:38 阅读更多 →
SQLite+FTS5+BM25构建AI上下文感知能力

SQLite+FTS5+BM25构建AI上下文感知能力

1. “context-mode”到底是什么?别被术语唬住,它本质是让AI真正“听懂上下文”的工程化开关最近在好几个技术群里看到有人问:“context-mode开了没?”、“这个插件依赖context-mode,但文档里根本没说怎么配”&#xff…

2026/10/14 7:24:38 阅读更多 →
不写代码也能搭:AI自动化工作流拆解与实操复盘

不写代码也能搭:AI自动化工作流拆解与实操复盘

我一直觉得,很多非程序员朋友把“AI 自动化工作流”想成了只有工程师才能碰的东西。自己试过一轮之后我反而发现,搭一套能用的 AI 自动化工作流,最核心的难点根本不是写代码,而是怎么把手上那堆乱糟糟的活拆成一条清晰的任务流水线…

2026/10/14 7:24:38 阅读更多 →
游戏研发暑期实习笔试复盘:C++、图形学与算法建模全解析

游戏研发暑期实习笔试复盘:C++、图形学与算法建模全解析

2020年4月11日晚上19:00到21:30,我参加了某游戏大厂的游戏研发暑期实习笔试。2.5小时,没有休息,客观题加四道编程题,考到后面脑子确实有点发木。这不是我第一次接触游戏岗的笔试,但那场题覆盖面很典型,横跨…

2026/10/14 7:23:38 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →