k8s里pod与宿主机的veth-pair匹配关系查找方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s里pod与宿主机的veth-pair匹配关系查找方法相关的知识,希望对你有一定的参考价值。

参考技术A 现在有这样一个环境,两个网桥,一个是Linux内核网桥br1,另一个是ovs网桥 br-eth1,现在想把两个网桥连接起来,就可以用veth pair.
顾名思义,veth-pair 就是一对的虚拟设备接口,和 tap/tun 设备不同的是,它都是成对出现的。一端连着协议栈,一端彼此相连着。如下图所示:

ip link

由下面的输出可知,此虚拟网卡对应外面的veth的ID为99.

tun:点对点的设备,tun设备模拟网络层设备,处理三层报文,如IP报文。tun设备完全不需要物理地址的。它收到和发出的包不需要arp,也不需要有数据链路层的头。
tap:是一个普通的以太网设备,tap设备模拟链路层设备,处理二层报文,比如以太网帧。tap设备需要有完整的物理地址和完整的以太网帧
TUN用于路由,而TAP用于创建网桥。
eth-pair 是成对出现的一种虚拟网络设备,一端连接着协议栈,一端连接着彼此,数据从一端出,从另一端进。

它的这个特性常常用来连接不同的虚拟网络组件,构建大规模的虚拟网络拓扑,比如连接 Linux Bridge、OVS、LXC 容器等。

pod install 错误:给定 podspec 'file_picker' 的名称与预期的 'gx_file_picker' 不匹配

【中文标题】pod install 错误:给定 podspec \'file_picker\' 的名称与预期的 \'gx_file_picker\' 不匹配【英文标题】:pod install error: The name of the given podspec 'file_picker' doesn't match the expected one 'gx_file_picker'pod install 错误:给定 podspec 'file_picker' 的名称与预期的 'gx_file_picker' 不匹配 【发布时间】:2021-07-08 07:24:48 【问题描述】:

我在安装 pod 时遇到以下错误。

[!] The name of the given podspec 'file_picker' doesn't match the expected one 'gx_file_picker'

我尝试将“pubspec.yaml”中的文件名从 gx_file_picker 更改为 file_picker,但这似乎不起作用。进一步的研究也没有成效。

知道如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

我也遇到了同样的问题,我发现gx_file_picker/ios/gx_filepicker.podspec:

  s.name             = 'file_picker'

必须改为:

  s.name             = 'gx_file_picker'

更改后这样做不会造成任何伤害:

    进入ios文件夹 删除 PodFile.lock 文件 rm -rf Pods pod 缓存清理 --all 吊舱解体 吊舱设置 吊舱安装

现在我的项目中一切正常。

【讨论】:

运行 pod install 后文件返回到 file_picker 然后发生同样的错误 那就再改吧。 我这样做了很多次,但还是一样。 只是帮帮忙,找到这个目录“gx_file_picker/ios/gx_filepicker.podspec:”在finder中导航到您安装的Flutter SDK文件夹,确保您可以查看隐藏文件夹并导航到“flutter /.pub-cache/hosted/pub.dartlang.org/" 你会在那里找到目录。 @birukIS 您是否遵循了下面列出的其他步骤,包括清除 pod 缓存。我认为这就是问题所在。

以上是关于k8s里pod与宿主机的veth-pair匹配关系查找方法的主要内容,如果未能解决你的问题,请参考以下文章

在K8S POD中获取pod所在node节点的ip

K8S调度之pod亲和性

k8s网络配置DNS

K8s Pod 驱逐调度时间窗口

microk8s上给Pod挂载NFS

k8s之存储卷及pvc