第三篇:《在 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/9/18 7:29:35 阅读更多 →
黄金价格软件国内外价格实时监控超方便

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

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

2026/9/21 20:30:33 阅读更多 →
容器化部署中特殊字符处理的性能优化实践

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

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

2026/9/17 1:08:25 阅读更多 →

最新新闻

商标业务一网通办,这几点值得留意

商标业务一网通办,这几点值得留意

官方门户改版,商标办理入口更集中 国家知识产权局商标局官方网站近期完成升级,网上申请、进度查询、电子送达等功能进一步整合。对企业和申请人来说,最直接的变化是:商标查询、注册申请、异议、评审、转让、续展等高频业务&#x…

2026/9/23 22:42:57 阅读更多 →
昇腾Atlas 300V 24G推理加速卡与YOLO模型部署全解析

昇腾Atlas 300V 24G推理加速卡与YOLO模型部署全解析

提到“Atlas 300V 24G”,多数人第一反应是:这到底算不算运算加速卡?最近在技术社区里这个问题被反复翻出来,同时“Atlas部署YOLO”也成了热搜词。作为一个在昇腾生态里折腾过YOLOv5、YOLOv8部署的人,我可以直接说结论&…

2026/9/23 22:42:57 阅读更多 →
Linux下解析搜狗.scel词库并转换为ibus可用格式

Linux下解析搜狗.scel词库并转换为ibus可用格式

1. 项目概述:为什么Linux用户要亲手“拆解”搜狗词库?在Linux桌面生态里,输入法从来不是个省心事。你装好系统,配好ibus或fcitx,点开设置界面,发现预置词库薄得像张纸——打“人工智能”要逐字敲&#xff0…

2026/9/23 22:42:57 阅读更多 →
OpenSpec 实战:用规格驱动开发解决接口契约散落与代码脱节

OpenSpec 实战:用规格驱动开发解决接口契约散落与代码脱节

1. 从“规格散落各处”说起:OpenSpec 到底想解决什么问题如果你参与过稍微有点规模的软件项目,大概率经历过这样的场景:需求文档在某个在线文档里,接口定义在另一个协作平台,数据库字段说明藏在某个人的笔记里&#xf…

2026/9/23 22:42:57 阅读更多 →
agent-skills:AI时代可发现、可组合的CLI能力基建

agent-skills:AI时代可发现、可组合的CLI能力基建

1. 什么是 agent-skills:不是插件,不是脚本,而是AI时代的新“肌肉记忆”“agent-skills”这个词最近在开发者社区、AI工具链讨论组和前端技术群里高频出现,但它既不是某个具体开源库的官方命名,也不是某家大厂发布的标…

2026/9/23 22:42:57 阅读更多 →
SLAMTB-Graph:轻量级Graph SLAM教学仿真工具箱

SLAMTB-Graph:轻量级Graph SLAM教学仿真工具箱

简介:本资源是一个面向机器人与SLAM初学者、高校教学及科研人员的MATLAB仿真工具箱,聚焦EKF-SLAM与图优化SLAM两大核心范式,帮助用户深入理解同时定位与建图的理论原理与工程实现。压缩包共415个文件,以408个MATLAB函数&#xff0…

2026/9/23 22:41:56 阅读更多 →

日新闻

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A…

2026/9/23 0:00:23 阅读更多 →
2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我 刚把开发环境的显示器从1080P换到2K,跑老项目直接报错,版本升级后 API…

2026/9/23 0:01:25 阅读更多 →
3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点 官方文档翻了三遍还是云里雾里?别急,美眉图在实战项目中常被用来做数据可视化,但它的原理比你想的简单。今天咱们直接上手,用一个完整的小项目把美眉图跑通,不再死磕那些冗长的理论说明。…

2026/9/23 0:01:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →