首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
大数据
›
数据仓库与分析
›
K8s 中Istio 的使用示例
返回列表
发新帖
K8s 中Istio 的使用示例
[复制链接]
发表于 2025-12-4 15:09:13
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
要将你自己的进程接入
Istio
并从 Istio 中获取网络包,紧张依赖于 Istio 的
Sidecar 注入
和
Envoy Proxy
实现的流量署理机制。以下是具体的流程和实现思绪:
1.
Istio Sidecar 注入原理
Istio 通过将
Envoy
作为一个
Sidecar
容器
注入到你的 Pod 中,使全部网络流量都颠末 Envoy 署理。
Envoy 负责拦截和转发来自 Pod 内部的
入站流量
和
出站流量
。
你自己的进程并不直接与 Istio 自己交互,而是通过与
Envoy
交互来间接实现网络控制和流量管理。
2.
Sidecar 注入方式
你须要让 Istio 将 Envoy 署理注入到你的 Pod 中,有两种方式:
自动注入
:确保你的定名空间中启用了 istio-injection。
kubectl label namespace <your-namespace> istio-injection=enabled
复制
代码
在此定名空间中摆设的 Pod 会自动注入 Sidecar。
手动注入
:使用 istioctl kube-inject 工具在你的 Pod 设置文件中注入 Envoy 署理。
istioctl kube-inject -f your-deployment.yaml | kubectl apply -f -
复制
代码
3.
怎样吸取网络包?
Istio 会将网络流量定向到 Envoy Proxy,而你的进程怎样获取网络包取决于你的具体需求:
A. 与 Envoy 通讯:实当署理层的哀求剖析
监听流量
:
你的进程可以监听一个端口(比方 localhost
ORT),Envoy 会将颠末署理的流量转发到你的进程。
在 Envoy 设置中,通过
Listener
和
Route
将特定的流量重定向到你指定的端口。
应用层剖析
:
假如是 HTTP/TCP 流量,你可以从监听端口上读取哀求数据包,然后举行剖析和处理处罚。
比方:Envoy 设置 ServiceEntry 或 VirtualService,让哀求流量转发到你的进程。
B. 直接监听 Pod 网卡流量(高级用法)
假如你须要获取
原始网络包
,可以使用更底层的方法:
使用工具如
eBPF
(Extended Berkeley Packet Filter) 或
tcpdump
监听 Pod 的网络接口。
eBPF 可以附加到 Pod 内的网络接口,用于捕获颠末 Pod 的网络包,恰当对网络流量举行深度分析。
注意:这种方式较为底层,并不依赖 Envoy,而是直接抓取 Pod 网络层的数据。
示例
:在 Pod 内部运行 tcpdump
tcpdump -i eth0 -nn
复制
代码
C. 通过 Envoy 统计和访问
日志
Envoy 还支持输出丰富的
网络统计信息
和
访问
日志
:
访问
日志
:通过设置 Envoy 的日志,可以将网络流量的哀求信息输出到文件或尺度输出。
Metrics 指标
:Envoy 集成了
Prometheus
,可以获取流量的及时统计数据。
你的进程可以读取这些日志或指标,从而间接获取网络流量的干系信息。
4.
现实摆设示例
假设你有一个自界说服务 my-proxy,摆设在 Kubernetes 中,你的进程监听 127.0.0.1:8000。
步调:
启用 Istio 自动注入
kubectl label namespace default istio-injection=enabled
复制代码
创建服务和 Deployment
:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-proxy
spec:
replicas: 1
selector:
matchLabels:
app: my-proxy
template:
metadata:
labels:
app: my-proxy
spec:
containers:
- name: my-proxy
image: my-proxy-image:latest
ports:
- containerPort: 8000
---
apiVersion: v1
kind: Service
metadata:
name: my-proxy
spec:
selector:
app: my-proxy
ports:
- port: 80
targetPort: 8000
复制代码
设置 Istio 流量转发
:
使用 VirtualService 将外部流量导向你的服务 my-proxy。
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: my-proxy
spec:
hosts:
- "my-proxy.local"
http:
- route:
- destination:
host: my-proxy
port:
number: 80
复制代码
读取流量
:
Envoy 将流量转发到你的服务监听的端口(比方 8000),你的进程可以直接处理处罚哀求数据包。
5.
注意事项
流量捕获机制
:Istio 使用 iptables 规则挟制流量并转发到 Envoy Proxy,以是你须要与 Envoy 交互而不是直接监听原始网络包。
性能
开销
:Sidecar
容器
会引入肯定的网络延长,假如你的进程对
性能
要求极高,可以思量轻量级的署理实现。
安全
性
:确保你的进程可以或许准确处理处罚 Istio 注入的流量,同时兼容 TLS
加密
流量。
总结
你的进程紧张通过
Envoy Proxy
吸取流量。Envoy 拦截 Pod 的入站和出站流量,并将其转发到你指定的端口。
假如须要原始网络包,可以通过
eBPF
或
tcpdump
直接监听 Pod 的网络接口。
团结
VirtualService
和
ServiceEntry
,可以控制 Envoy 怎样路由流量到你的进程。
Istio 的日志和指标输出也可以提供网络流量的具体信息,供你的进程分析。
根据需求选择符合的接入方式,可以有效实现网络包的获取与处理处罚。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
返回列表
浏览过的版块
移动端开发
MES
Java
SQL-Server
程序人生
物联网
开源技术
公有云
玛卡巴卡的卡巴卡玛
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表