问题标签 [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.
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 实例?我本质上希望能够运行mongo
或mongo --host xyz
连接到实例。
有关集群的更多信息:Kubernetes 版本 1.20.5 使用 flannel 版本 0.13.0 作为 CNI
containerd - 如何在没有 K8s 的情况下配置 kata 容器网络?
我正在尝试在没有 K8s 的情况下启动 Kata 2.x 容器。由于 Kata-shim-V2 与 docker 不兼容,我使用ctr
via启动了容器containerd
容器启动成功,但网络不工作。在我看来,在大多数用例中,当集成到 K8s 中时,网络是在上层处理的。我试图传递--net-host
论点,但有一个限制。
如何在不使用 k8s 的情况下设置容器网络?详细指南将不胜感激。
azure - 在启用 Azure CNI 的情况下,DNS 不会删除 AKS 中未就绪的 pod
AKS 如何使未准备好的 pod 无法接受对其的请求?仅当您在该部署之前有服务时才有效?
我想首先解释一下我在未配置 azure cni 的 aks 中注意到的内容,然后继续解释我在启用 azure cni 的 aks 中看到的内容。
在没有启用 cni 的 AKS 中,如果我在这样的服务后面的未准备好的 pod 上执行curl
on 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 请求要么无法解析该主机名,要么会拒绝连接或其他什么?
kubernetes - 使用 Azure CNI 网络策略仅允许从 Kubernetes pod 出站到特定的 FQDN/DNS
如何使用 Azure CNI 网络策略将来自 Kubernetes pod 的出口限制为仅特定的 FQDN/DNS?
这可以通过以下方式实现:
Istio
纤毛
开班
如何使用 Azure CNI 网络策略完成类似的操作?
kubernetes - 限制 minikube 带宽
我试图限制 minikube 的带宽,我试图限制 cni 配置的带宽,但没有任何改变。我在 minikube 中启用了 calico:
这是我的配置文件:
我还尝试使用带有以下命令的 Wondershaper 通过 minikube 限制带宽:
但我收到以下错误:
找不到设备“ifb0”
而且似乎只有出口流量受到限制。
kubernetes - 如何找到我的 k8s 正在使用的 CNI 插件?它的配置文件在哪里?
如何轻松找到配置了哪个 CNI 插件以及与之关联的配置文件在哪里?
kubernetes - kuberntes/manifest 更新后 kubelet 不会启动
这在我们的 K8 集群中是一种奇怪的行为。
当我们尝试部署新版本的应用程序时,我们会得到:
我使用kubectl get cs
并找到controller
并scheduler
处于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
服务日志中找到这个
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?
谢谢