kubeedge edgemesh实现原理

本文介绍了kubeedge 1.6中edgemesh模块的工作原理,当podA尝试通过service访问podB时,DNS请求被edgemesh捕获并返回虚假IP。podA的HTTP请求经过iptables规则转发至edgemesh listener,listener再通过go-chassis选择具体endpoint并转发到podB的实际节点IP和端口。
摘要由CSDN通过智能技术生成

目前 kubeedge 1.6 版本中的edgemesh 模块主要解决了同一网络内的edge nodes pod通过service 访问服务。其流程图如下:

分别有边缘节点node A, B, podA运行在nodeA上, podB运行在nodeB上。并为podB创建service

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  clusterIP: None
  selector:
    app: nginx
  ports:
    - name: http-0
      protocol: TCP
      port: 8080
      targetPort: 80

现从podA 中curl my-service.default:8080 来访问podB提供的服务。

1. curl my-service.default:8080 会触发dns查寻请求,此时podA的DNS配置如下:

# cat /etc/resolv.conf
nameserver 172.17.0.1

172.17.0.1为主机上docker0的IP地址,因为edgemesh 的dns server监听在docker0:172.17.0.1:53上,所以edgemesh 会拦截并处理该DNS请求,并返回一个edgemesh分配的虚假IP:9.251.0.6

2. curl命令收到该my-service.default的IP后,向9.251.0.6:8080发起http请求,此时查看nodeA上的i

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值