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

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

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

2026/11/12 6:48:33 阅读更多 →
容器化部署中特殊字符处理的性能优化实践

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

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

2026/11/12 9:57:52 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/15 5:13:35 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/15 5:13:35 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/15 5:13:35 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/15 3:37:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/15 4:18:38 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/15 5:13:35 阅读更多 →

日新闻

周新闻

月新闻