问题标签 [cni]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - Kubernetes NetworkPlugin cni 设置 pod 失败
关于我使用的以下描述 pod 的日志,我的 pod 由于“FailedCreatePodSandBox”而陷入挂起状态</p>
有一些关键说明:-我使用印花布作为 CNI。- 这个日志重复多次,我只是把这个作为样本过去。- ip 192.168.90.152 属于入口,129 属于 k8s 的监控 NS 中的分蘖,我不知道为什么 k8s 会尝试将其绑定到另一个 pod。
我用谷歌搜索了这个问题,我在这里什么也没有。
有人可以帮助解决这个问题吗?
kubernetes - kubernetes:如何查看或列出已安装的 CNI 插件?
假设,我刚刚安装了一个 Kubernetes CNI 插件,例如weave-net
:
如何查看或列出已安装的 CNI 插件?
安装后我怎么知道它正在运行?或者如果我kubectl delete
是插件,我怎么知道它被删除了?
安装插件后,我有点期待看到为这个插件创建的一些对象。因此,如果我想删除它,那么我不必记住我用来安装的确切 URL,我可以查找对象名称并删除它。
docker - kube pod 上的网络问题
- 首先,我了解 k8s 以及它如何与他们的所有东西一起工作;
- 其次,我需要介绍一下我的应用程序以及它如何在 k8s 上运行
- 第三,我要问我的问题:
这个应用程序由三个 Pod 组成,每个 Pod 都有自己的服务:
这个应用程序以这种方式工作:
当请求进入示例应用程序时,此应用程序将请求存储为 Redis 中的作业,同时队列监视 Redis 以获取未处理的作业并处理它们(例如发送电子邮件)。
现在我的问题:
队列 pod 没有理由,没有时间顺序,也没有日志停止工作,需要在 k8s 日志中再次告诉您看不到任何错误或警告,这主要就像卡住并且什么也不做!!这个应用程序在 minikube 和 k8s 之前的 VM 上运行良好。所以每次我删除队列 Pod 时,新创建的 Pod 开始正常工作并处理来自 Redis 的作业。
我使用基准工具在 minikube 上测试了这个应用程序(使用 ab 命令从集群外部发送请求)没有问题也没有错误,所以每当我移动到 k8s 并以高请求密度测试这个应用程序时,队列 pod 也会再次停止工作,因为我这个应用程序的第二个问题。
*关于我的集群的额外信息:k8s 版本是 1.15,docker 版本是 19.3.1,CNI 插件是 calico,我使用 helm。
现在有什么方法可以解决问题并识别问题出在哪里?
kubernetes - 哪个 CNI 最适合在 kubernate 部署中使用外部 sql 服务器运行 .net 核心应用程序?
我需要使用最适合 Dotnet 核心的 cni 和 SQL 服务器(相同网络但不同 IP)Kubernetes 部署。
kubernetes - 如何修复 Flannel CNI 插件。错误:[插件法兰绒不支持配置版本“”]
在安装 Kubernetes 时,我卡在 CNI 插件安装和配置部分。我已经安装了 Flannel,但由于 coredns pod 处于挂起状态,我在 kubelet 日志中看到错误。
操作系统:Centos7 k8s 版本:1.16 Kubeadm 用于设置集群。
我使用以下方法安装了插件:kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
这是我可以在 Kubelet 日志中看到的错误:
这是豆荚:
有一个文件/etc/cni/net.d
名为10-flannel.conflist
. 它的内容是:
networking - minimise disruption on weave network upgrade on kubernetes
I would like to upgrade my weave network from version 2.5.0 to 2.5.2. I understand that it's "as simple" as updating the weave daemonset.... however, i was wondering if there is a way that this can be done with minimal disruption to running pods on the system.
An simple example in my mind would be to:
- cordon node1
- drain node1 of all pods
- update weave on node1
- uncordon node1
... then rinse and repeat for each k8s node until all done.
kubernetes - 在 k8s1.16 中使用 kubenet 和双栈时,如何配置在另一个节点上 ping cbr0 gw?
我按照本指南安装了一个带有两个节点的 kubernetes v1.16 集群,并启用了“IPv4/IPv6 双栈” 。对于“双栈”,我设置--network-plugin=kubenet
为 kubelet。
现在,pod 有 ipv4 和 ipv6 地址,每个节点都有一个 cbr0 gw,同时具有 ipv4 和 ipv6 地址。但是当我从一个节点ping到另一个节点的cbr0 gw时,它失败了。
我尝试手动添加路由如下:“ip route add [podCIDR of other node] via [ipaddress of other node]”
在两个节点上添加路由后,我可以用 ipv4 ping cbr0 gw 成功。但是“手动添加路由”似乎不是正确的方法。
当我使用 kubenet 时,我应该如何配置从一个节点 ping 到另一个节点的 cbr0 gw?
kubernetes - Kubernetes 1.15.5 和 romana 2.0.2 在添加或删除任何 pod 时出现网络错误
我在我们的 Kubernetes 集群中遇到了一些神秘的网络错误。虽然我最初使用 ingress 时遇到了这些错误,但是当我绕过我们的负载均衡器、绕过 kube-proxy 和绕过 nginx-ingress 时,出现的错误更多。直接访问服务和直接访问 Pod IP 时出现的错误最多。我相信这是因为负载均衡器和 nginx 比原始 iptable 路由具有更好的错误处理能力。
为了测试错误,我在同一子网上使用来自 VM 的 apache 基准测试,任何并发级别,没有保持活动,连接到 pod IP 并使用足够高的请求数给我时间来扩大或缩小部署。奇怪的是,我修改哪个部署并不重要,因为它总是会导致相同的错误集,即使它与我正在修改的 pod 无关。任何添加或删除 pod 都会触发 apache 基准测试错误。手动删除、放大/缩小、自动缩放所有触发错误。如果在 ab 测试运行时没有 pod 更改,则不会报告错误。请注意,如果不能消除错误,keep-alive 似乎确实会大大减少错误,但我只测试了几次,从未发现错误。
除了一些奇怪的 iptable 冲突之外,我真的看不出删除 pod A 会如何影响 pod B 的网络连接。由于错误是短暂的并且会在几秒钟内消失,这似乎更像是短暂的网络中断。
样本 ab 测试:ab -n 5000 -c 2 https://10.112.0.24/
使用 HTTPS 时的错误:
使用 HTTP 时的错误:
示例 ab 输出。遇到第一个错误后我 ctl-C:
当前可能相关的 sysctl 设置:
我没有看到任何 conntrack “完整”错误。最好我能说没有丢包。我们最近从 1.14 升级并没有注意到这个问题,但我不能肯定它不存在。我相信我们很快就会被迫从 romana 迁移出去,因为它似乎不再被维护,而且当我们升级到 kube 1.16.x 时,我们在启动时遇到了问题。
我今天整天在互联网上搜索类似的问题,与我们的问题最接近的问题是https://tech.xing.com/a-reason-for-unexplained-connection-timeouts-on-kubernetes-docker-abd041cf7e02但我不知道如何实现 iptable masquerade --random-fully 选项,因为我们使用 romana 并且我读到(https://github.com/kubernetes/kubernetes/pull/78547#issuecomment-527578153)完全随机是我们正在使用的 linux 内核 5 的默认值。有任何想法吗?
- Kubernetes 1.15.5
- 罗马2.0.2
- centos7
- Linux kube-master01 5.0.7-1.el7.elrepo.x86_64 #1 SMP Fri Apr 5 18:07:52 EDT 2019 x86_64 x86_64 x86_64 GNU/Linux
====== 2019 年 11 月 5 日更新 ======
有人建议测试备用 CNI。我选择了 calico,因为我们在旧的基于 Debian 的 kube 集群中使用了它。我使用我们最基本的 Centos 7 模板 (vSphere) 重建了一个虚拟机,所以我们的自定义有一些包袱。我无法列出我们在模板中自定义的所有内容,但最显着的变化是内核 5 升级yum --enablerepo=elrepo-kernel -y install kernel-ml
。
启动 VM 后,这些是安装 kubernetes 和运行测试的最少步骤:
现在设置已准备就绪,这是 ab 测试:
此错误后 ab 测试放弃。如果我减少请求的数量以避免超时,您会看到:
这个问题在技术上与我报告的原始问题不同,但这是一个不同的 CNI,仍然存在网络问题。当我在 kube/romana 集群中运行相同的测试时,它确实存在超时错误:在与 pod 相同的节点上运行 ab 测试。两者都遇到了相同的超时错误,但在 romana 中,我可以在超时之前完成数千个请求。Calico 在达到十几个请求之前遇到超时错误。
其他变体或注释: - net.netfilter.nf_conntrack_tcp_be_liberal=0/1 似乎没有什么不同 - 更高的-n
值有时会起作用,但它在很大程度上是随机的。-n
- 连续多次以低值运行“ab”测试有时会触发超时
在这一点上,我很确定我们的 centos 安装存在一些问题,但我什至无法猜测它可能是什么。是否有任何其他限制、sysctl 或其他配置可能导致此问题?
====== 2019 年 11 月 6 日更新 ======
我观察到我们安装了较旧的内核,因此我使用相同的较新内核 5.3.8-1.el7.elrepo.x86_64 升级了我的 kube/calico 测试 VM。更新和几次重新启动后,我无法再重现“apr_pollset_poll:指定的超时已过期(70007)”超时错误。
现在超时错误消失了,我可以重复原始测试,在我的 vSphere VM 上加载测试 pod A 并杀死 pod B。在 romana 环境中,问题仍然存在,但仅当负载测试位于与 pod A 所在位置不同的主机上时。如果我在同一台主机上运行测试,则完全没有错误。使用 Calico 而不是 romana,两台主机上都没有负载测试错误,因此问题消失了。可能仍有一些设置需要调整,可以帮助 romana,但我认为这是 romana 的“罢工 3”,所以我将开始将完整的环境过渡到 Calico,并在那里进行一些验收测试,以确保没有隐藏的陷阱。
kubernetes - 使用 multus-cni 添加的 IP 地址无法从同一集群中的另一个 pod 访问
我正在使用 multus-cni 在我的 pod 中创建多个接口。我已经配置了 weave-net CNI,因此 pod 提供了集群 ip 10.32.xx 使用下面的 network-attachment-definition ,我能够在 IP 地址为 10.32.0.180-199 的 pod 内启动多个接口,但这些 IP 地址是无法从同一集群中的其他 pod 访问。如果我在另一个 pod 中执行 kubectl exec 并 ping 10.32.0.180,我将无法 ping 该 IP。
谁能告诉我需要做什么才能在集群中访问 pod 中的其他接口?
cni - 如何使用 podman 复制 docker macvlan 网络?
我在用于托管 Unifi 网络控制器应用程序的 Fedora 工作站上有一个可用的 docker 实现。我使用 macvlan 为控制器分配静态 IP。创建 macvlan 的 docker network 命令是:
控制器运行的容器被分配了一个静态 ip:
docker run --rm --init --network unifinet --ip 192.168.110.226 ....
我想使用 podman 作为替代来实现这一点。是否有有用的在线教程解释如何使用 podman 使用的 CNI 的实现?特别是macvlan插件?我无法决定是否应该使用静态 IPAM 插件或本地主机 IPAM 插件。
Brent Baude 的使用 Podman 容器租赁可路由 IP 地址是一个好的开始,但重点是使用 dhcp IPAM 插件。
谢谢你