讲师中心 微信公众号
AI工具推荐 视频效率加速

Kubernetes部署Istio服务网格方法

大晨吖_3009

大晨吖_3009

发布时间:2026-09-29 10:16:48

|

761人浏览过

|

来源于php中文网

原创

istioctl install 是当前 Istio 官方唯一主推的安装方式,支持自动处理 CRD、RBAC、证书签发与配置校验;Helm 自 1.16 起已弃用,强行使用易导致 istiod 启动失败或证书异常。

kubernetes部署istio服务网格方法

直接用 istioctl 安装是最可控、最贴近生产环境的方式;helm 安装虽可行,但自 Istio 1.16 起官方已弃用 Helm chart,后续版本不再维护,强行使用容易卡在 istiod 启动失败或证书签发异常上。

用 istioctl install 部署 istiod 控制面

这是当前唯一被 Istio 官方主推的安装路径,能自动处理 CRD、RBAC、证书签发和默认配置校验。

  • 下载并解压对应版本(如 1.20.4):curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.20.4 sh -
  • 把 istioctl 加入 PATH:export PATH=$PWD/istio-1.20.4/bin:$PATH
  • 执行安装(推荐 demo 配置起步):istioctl install --set profile=demo -y
  • 验证控制面 Pod 状态:kubectl get pods -n istio-system,重点关注 istiod 是否为 Running,且无 CrashLoopBackOff

注意:若集群未启用 ServiceAccount token 自动挂载(如旧版 kubeadm 集群),istiod 会因无法访问 kube-apiserver 而反复重启——需手动 patch:kubectl patch serviceaccount -n istio-system istiod -p '{"automountServiceAccountToken": true}'

启用命名空间自动注入 sidecar

sidecar 注入不是“开个开关就完事”,它依赖两个条件同时满足:命名空间打了 label,且该命名空间下 Pod 的 template 没显式禁用 injection。

  • 打 label(以 default 为例):kubectl label namespace default istio-injection=enabled
  • 确认 label 已生效:kubectl get namespace default -o yaml | grep istio-injection,输出应为 istio-injection: enabled
  • 部署应用后检查 Pod 是否含两个容器:kubectl get pod xxx -o jsonpath='{.spec.containers[*].name}',正常应看到类似 app envoy

常见坑:Deployment 中若设置了 template.spec.containers[0].env 但没写全字段(比如漏了 valueFrom),会导致 webhook 注入失败且不报错,Pod 卡在 Pending;此时查 kubectl describe pod 可见 warning:FailedCreatePodSandBox 或 injector.istio.io failed

Kubernetes Security Posture Scorecard
Kubernetes Security Posture Scorecard

评估 Kubernetes 集群安全态势,覆盖 RBAC、工作负载安全、网络策略、基础设施即代码(IaC)、运行时监控和密钥管理等 30 项控制项……

下载

暴露服务:istio-ingressgateway 不是 Ingress 资源

istio-ingressgateway 是一个 Deployment + Service 类型的网关实例,和 Kubernetes 原生 Ingress 资源完全无关。它不解析 ingress.networking.k8s.io 对象,只响应 Gateway 和 VirtualService。

  • 确认网关 Pod 运行:kubectl get pods -n istio-system -l app=istio-ingressgateway
  • 获取入口地址(NodePort 场景):kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}'
  • 必须配套定义 Gateway(绑定端口/协议)和 VirtualService(路由规则),否则流量进不来;单独改 Service 类型为 NodePort 或 LoadBalancer 只是开放了端口,没定义任何路由逻辑

典型错误:把 VirtualService 的 host 写成 example.com,但没配 DNS 或 Hosts,浏览器直连 IP 就 404;正确做法是先用 curl -H "Host: example.com" http://$INGRESS_HOST:$INGRESS_PORT 测试

验证流量是否真经过 Envoy

光看 Pod 有两个容器、网关 Pod Running,并不能证明流量进了数据面——得看 Envoy 是否实际劫持了连接。

  • 进 Pod exec:kubectl exec -it deploy/productpage -c productpage -- sh
  • 查本地监听端口:netstat -tlnp | grep :9080,正常只显示 productpage 进程监听;Envoy 在 15090(健康检查)、15021(sidecar 自检)等端口监听,但业务端口由 Envoy 接管,应用进程并不直接 bind
  • 更直接的方式:查 Envoy 访问日志:kubectl logs -n istio-system -l app=istio-ingressgateway -c istio-proxy | tail -5,有 access log 行说明外部请求已进入数据面

最容易被忽略的一点:如果应用容器用了 hostNetwork: true 或 networkPolicy 显式放行了非 15090/15021 端口的流量,Envoy 的 iptables 规则可能被绕过,导致 sidecar 形同虚设

热门AI工具

更多
立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

相关专题

更多
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

116

2025.12.22

Go云原生应用与Kubernetes服务部署实战
Go云原生应用与Kubernetes服务部署实战

本专题围绕 Go 语言在云原生环境中的应用展开,讲解容器化部署、Kubernetes 编排、服务发现、健康检查与弹性扩缩容机制。通过真实云端案例,帮助开发者构建可扩展的云原生微服务架构。

168

2026.06.29

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

200

2026.09.23

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

100

2026.09.23

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

80

2026.09.23

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

60

2026.09.22

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

60

2026.09.22

Conan私有仓库搭建教程
Conan私有仓库搭建教程

本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。

60

2026.09.22

loomy官网入口地址合集
loomy官网入口地址合集

本专题汇总了 Loomy 桌面 AI 助理的官方入口地址合集及使用指南。提供 macOS 与 Windows 客户端下载 。Loomy 是讯飞推出的桌面级 AI 工作搭子,支持文件整理、数据分析、网页操作及通过飞书/钉钉远程操控电脑,助你高效完成本地办公任务 。

60

2026.09.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kubernetes官方教程手册
Kubernetes官方教程手册

共0课时 | 0人学习

Kubernetes官方中文文档
Kubernetes官方中文文档

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn