问题标签 [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.

0 投票
0 回答
77 浏览

mongodb - 从 Kubernetes 集群中的应用程序访问在主机操作系统上运行的 mongo 服务

我有一个小型本地 kubernetes 集群设置,有一个主节点(master1:192.168.122.4)和一个工作节点(worker1:192.168.122.5)。Worker1 有一个在裸机操作系统上运行的副本集 mongo 实例,而不是在 k8s 集群中。我可以在 k8s 集群之外通过以下方式访问 mongodb(注意:所有主机名都可以从 master1 上运行的 dns 解析)

从master1:

从工人1:

我还有一个在 k8s 集群中运行的应用程序,它被安排到 worker1。以下是吊舱规格:

我已经尝试了以下方法,但它不起作用。我能够运行 nslookup 并取回正确的 IP,但我无法连接到 mongo:

有没有办法从同一主机上的 k8s 集群中运行的测试应用程序连接到主机操作系统上运行的 mongo 实例?我本质上希望能够运行mongomongo --host xyz连接到实例。

有关集群的更多信息:Kubernetes 版本 1.20.5 使用 flannel 版本 0.13.0 作为 CNI

0 投票
0 回答
56 浏览

containerd - 如何在没有 K8s 的情况下配置 kata 容器网络?

我正在尝试在没有 K8s 的情况下启动 Kata 2.x 容器。由于 Kata-shim-V2 与 docker 不兼容,我使用ctrvia启动了容器containerd

容器启动成功,但网络不工作。在我看来,在大多数用例中,当集成到 K8s 中时,网络是在上层处理的。我试图传递--net-host论点,但有一个限制

如何在不使用 k8s 的情况下设置容器网络?详细指南将不胜感激。

0 投票
1 回答
79 浏览

azure - 在启用 Azure CNI 的情况下,DNS 不会删除 AKS 中未就绪的 pod

AKS 如何使未准备好的 pod 无法接受对其的请求?仅当您在该部署之前有服务时才有效?

我想首先解释一下我在未配置 azure cni 的 aks 中注意到的内容,然后继续解释我在启用 azure cni 的 aks 中看到的内容。

在没有启用 cni 的 AKS 中,如果我在这样的服务后面的未准备好的 pod 上执行curlon url,curl -I some-pod.some-service.some-namespace.svc.cluster.local:8080我在响应中得到的响应是无法解析的主机名或类似的东西。这意味着据我了解 DNS 没有此条目。这就是在正常情况下,aks 处理未准备好的 pod 以不接收请求的方式。

在启用了 azure cni 的 AKS 中,如果我在未准备好的 pod 上执行相同的请求,它能够解析主机名并能够将请求发送到 pod。但是,有一个警告是,当我尝试通过该服务的外部私有 ip 执行请求时,该请求不会到达未准备好的 pod,这是预期的并且似乎工作正常。但是,当我尝试执行上面提到的请求时,它再次curl -I some-pod.some-service.some-namespace.svc.cluster.local:8080起作用,但它不应该。为什么在 azure cni 的情况下 DNS 具有该值?

我可以做些什么来将 azure cni 配置为更像 AKS 的默认行为,在这种行为中,这样的 curl 请求要么无法解析该主机名,要么会拒绝连接或其他什么?

0 投票
2 回答
63 浏览

kubernetes - 在我们已经有 kubernetes 服务的情况下,我们在哪些情况下需要 Kubernetes 中的容器网络?

为什么我们需要 Pod 之间的点对点连接,而我们有工作负载抽象和网络机制(Service/kube-proxy/Ingress 等)?

什么是默认 CNI?
已编辑:我对这个问题感到困惑,因为我在安装 Kubernetes 时感觉自己没有安装任何流行的 CNI 插件。事实证明 Kubernetes 默认为kubenet

顺便说一句,我看到 Istio 和容器网络之间有很多重叠的特性。IMO 他们可以实现相同的目标。唯一的区别是 Istio 是高层,而 CNI 是低层,效率更高,对吗?
已编辑:有趣的是,istio 有自己的 CNI

0 投票
2 回答
173 浏览

kubernetes - 使用 Azure CNI 网络策略仅允许从 Kubernetes pod 出站到特定的 FQDN/DNS

如何使用 Azure CNI 网络策略将来自 Kubernetes pod 的出口限制为仅特定的 FQDN/DNS?

这可以通过以下方式实现:

Istio

纤毛

开班

如何使用 Azure CNI 网络策略完成类似的操作?

0 投票
0 回答
34 浏览

kubernetes - 限制 minikube 带宽

我试图限制 minikube 的带宽,我试图限制 cni 配置的带宽,但没有任何改变。我在 minikube 中启用了 calico:

这是我的配置文件:

我还尝试使用带有以下命令的 Wondershaper 通过 minikube 限制带宽:

但我收到以下错误:

找不到设备“ifb0”

而且似乎只有出口流量受到限制。

0 投票
1 回答
195 浏览

kubernetes - 如何找到我的 k8s 正在使用的 CNI 插件?它的配置文件在哪里?

如何轻松找到配置了哪个 CNI 插件以及与之关联的配置文件在哪里?

0 投票
1 回答
301 浏览

kubernetes - kuberntes/manifest 更新后 kubelet 不会启动

这在我们的 K8 集群中是一种奇怪的行为。

当我们尝试部署新版本的应用程序时,我们会得到:

我使用kubectl get cs并找到controllerscheduler处于Unhealthy状态。

正如这里的描述更新/etc/kubernetes/manifests/kube-scheduler.yaml/etc/kubernetes/manifests/kube-controller-manager.yaml评论--port=0

当我检查systemctl status kubelet它正在工作时。

我已经重新启动了 kubelet 服务,controller并且scheduler显示它很健康。

systemctl status kubelet显示(重启 kubelet 后不久显示运行状态)

尝试按照此处所述添加Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --fail-swap-on=false" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf仍然无法正常工作。

还删除--port=0了上述清单中的注释并尝试重新启动,结果仍然相同。

编辑:此问题是由于kubelet证书已过期并按照以下步骤修复。如果有人遇到这个问题,请确保/var/lib/kubelet/pki/kubelet-client-current.pem证书和密钥值在放置时是 base64 编码的/etc/kubernetes/kubelet.conf

许多其他人kubeadm init再次建议。但是这个集群是在kubespray没有手动添加节点的情况下创建的。

我们在 Ubuntu 18.04 上运行了裸机 k8。K8:v1.18.8

我们想知道任何调试和修复建议。

PS:
当我们尝试telnet 10.233.0.1 443从任何节点时,第一次尝试失败,第二次尝试成功。

编辑:在kubelet服务日志中找到这个

0 投票
0 回答
103 浏览

kubernetes - Kubernetes NetworkPlugin 错误:路由已存在于接口以外的其他接口

错误详情

我确实有这个IP,但是为什么在分配pod IP的时候会出现冲突呢?

我指的是this,但我不明白 在此处输入链接描述

calico节点日志:

0 投票
0 回答
64 浏览

kubernetes - 使用 VLAN 标头跨主机的基于 IPVLAN CNI 的 Pod

我在 Kubernetes 集群中有 2 个工作节点。工作节点位于同一个 L2 域上。

Worker-node0 上的 Pod00 正在使用 IPVLAN。所以,net1 得到 10.1.1.1

Worker-node1 上的 Pod01 正在使用 IPVLAN。所以,net1 得到 10.1.1.2

我希望能够 ping 10.1.1.1 <---> 10.1.1.2 并且它应该带有 VLAN 标头。我在 tcpdump 中看不到任何内容。问题:

  • 我假设 VLAN 标头是由 Pod 本身插入的。但是,在 IPVLAN CNI 中,我看不到任何通过配置获取 VLAN 信息的代码。我的理解正确吗?

  • 应该将 pod 中的接口显式配置为 vlan-subinterfaces (net1.10) 还是应该在工作节点 (enp1s0.10) 上进行配置?

  • 我应该使用什么作为“主”界面?enp1s0 还是 enp1s0.10?

谢谢