问题标签 [kube-proxy]
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 - 如何将更改推送到 Kubernestes Kube-proxy?
我是 Kubernetes 开发的新手,我的任务是更改 Kuberenetes 服务中的一些功能。
我有Kubernetes 本地集群,还有一个由 4 个 RPI 组成的测试平台,我的第一个更改已经完成Kubectl
,我所做的是在我的机器上交叉编译二进制文件,然后替换 RPI 中找到的旧二进制文件(因为编译 RPI 中的代码非常耗时)。
现在,我已经到了必须更新一些更改的地步Kube-proxy
,在本地集群中,二进制文件_output/bin
位于将需要创建新的 Docker 映像并强制 Kubernetes 选择这些映像而不是默认映像(据我所知)。
所以我的问题:
Kube-proxy
在正在运行的集群上推送更改的最佳/最简单方法是什么?如果我在 RPI 中编译代码,
make
将发布一个二进制文件Kube-proxy
,但集群将如何进行这些更改?
集群规格:
Kubernetes v1.9。
操作系统 hypriotos-v7+。
架构臂 32 位。
windows - canal 和 proxy pods 卡在 ContainerCreating 在 Kubernetes 集群中的 windows 节点上
我们正在尝试使用 canal pod 网络管理器向我们基于 centos 的 kubernetes 集群添加一个 windows 节点。
为此,我们构建了一个 windows server 1709 虚拟机,并严格按照本指南https://docs.microsoft.com/en-us/virtualization/windowscontainers/kubernetes/getting-started-kubernetes-windows操作。
事实上,powershell脚本成功加入集群
我们甚至部署了一个基于 Windows 的示例应用程序及其正在运行的服务。
但是通过 nodeport 方式无法访问 pod。深入研究这个问题,我们发现 canal 和 kube-proxy pod 都被卡住了
通过描述这些豆荚,这些问题似乎是无关的:
什么是 xtables-lock 以及为什么 windows 节点在代理的秘密卷中缺少此文件?
为什么 pod 沙箱(它是什么?)无法为 canal 创建,我应该在哪里查找更多信息?
windows kubernetes 节点的文档真的很缺乏,我不知道在哪里看,因为所有的谷歌结果都是关于 linux 节点的,我似乎找不到在 windows 上应用建议修复的方法,因为它是一个完全不同的环境。
以下是 Windows 节点上 kubelet 控制台的日志转储
kubernetes - kube-dns 获取 kube-proxy 无法列出 *core.Endpoints
Fresh Kubernetes (1.10.0) 集群使用 kubeadm (1.10.0) 安装在 RHEL7 裸机虚拟机上
和 1.12 码头工人
安装了 Flannel v0.9.1 pod 网络
我运行的 kubeadm init 命令是
它成功完成并且 kubeadm join 工作节点也成功。我可以在master上部署busybox pod并且nslookups成功,但是一旦我将任何东西部署到worker节点,我就会从master上的worker节点收到失败的API调用:
和 nslookup 超时
我在 stackoverflow 和 github 上查看了许多类似的帖子,似乎都可以通过设置 iptables -A FORWARD -j ACCEPT 来解决,但这次不是。我还包括了工作节点中的 iptables
我还可以看到包在法兰绒接口上被丢弃
我已经在其他虚拟机上安装了相同版本的 Kubernetes/Docker 和 Flannel 并且它可以工作,但不知道为什么我会在此安装中从工作节点对主代理进行这些失败的 API 调用?我进行了几次全新安装,并尝试了 weave 和 calico pod 网络,结果相同。
kubernetes - 如何在运行的集群中在 kube-proxy 上设置新的日志记录级别
有没有办法更改正在运行的集群上的日志记录级别,特别是针对 kube-proxy 等单个系统组件?
我看到一些与此相关的讨论:
https ://github.com/kubernetes/test-infra/pull/4311
似乎某种机制已经到位,但我不清楚如何使用它机制。
出现这个问题是因为我们正在对与 NodePort 服务的连接(应该通过 kube-proxy)进行故障排除,并且在默认级别 --v=2 kube-proxy 似乎没有记录它代理的任何连接,所以寻求增加它。
kubernetes - 使用 istio 网格扩展在 vm pod 中是否可以在没有 kubernetes 环境的情况下拥有 kube-proxy
我一直在从事一个非常创新的项目,其中涉及 Kubernetes 和 Istio。因此,我设置了 2 节点 kubernetes 集群,并在 Pod 中安装了 istio 和他们的边车。我已经在节点中托管了 bookinfo 应用程序,但是按照Istio Mesh-Expansion中给出的过程使用单独的 VM。
所以我有VM,其中存在详细信息和Mysqldb pod。其他 pod 正在 k8s 集群中运行。所以现在,他们在专用网络中进行通信。
所以我下一阶段的项目需要我单独设置 Kube-proxy,而不需要在 VM 中安装 Kubernetes,以便它可以通过私网直接与运行在 k8s 集群的 master 节点上的 Kube-Api Server 通信。因此,任何人都可以提出一种方法来解决这个问题吗?
kubernetes - kube-dns getsockopt 没有路由到主机
我正在努力了解如何在 kubernetes 1.10 上使用 flannel 正确配置 kube-dns,并将 containerd 作为 CRI。
kube-dns 无法运行,出现以下错误:
确实没有到 10.96.0.1 端点的路由:
什么负责配置集群服务地址范围和关联路由?是容器运行时、覆盖网络(在本例中为 flannel)还是其他什么?应该在哪里配置?
配置主机和我的 pod 网络之间的10-containerd-net.conflist
网桥。服务网络也可以在这里配置吗?
编辑:
从 2016 年开始就遇到了这个问题:
截至几周前(我忘记了发布,但它是 1.2.x,其中 x != 0)(#24429)我们修复了路由,以便到达以服务 IP 为目标的节点的任何流量都将被处理为如果它来到一个节点端口。这意味着您应该能够将您的服务集群 IP 范围的静态路由设置为一个或多个节点,并且这些节点将充当桥接器。这与大多数人使用法兰绒搭接覆盖层的技巧相同。
它不完美,但它有效。如果您想要最佳行为(即不丢失客户端 IP),将来需要更精确地使用路由,否则我们将看到更多的非 kube-proxy 服务实现。
这仍然相关吗?我需要为服务 CIDR 设置静态路由吗?还是问题实际上与kube-proxy
法兰绒或容器有关?
我的法兰绒配置:
和 kube-proxy:
编辑:
看了kube-proxy调试步骤,好像kube-proxy
联系不上master。我怀疑这是问题的很大一部分。我在 HAProxy 负载均衡器后面有 3 个控制器/主节点,它绑定到192.168.160.1:6443
并转发循环到10.240.0.1[1|2|3]:6443
. 这可以在上面的输出/配置中看到。
在kube-proxy.service
,我已经指定--master=192.168.160.1:6443
。为什么尝试连接到端口 443?我可以改变这个 - 似乎没有端口标志吗?出于某种原因,它是否需要使用端口 443?
kubernetes - 如何在主节点上运行 kube-proxy?
我在谷歌云上使用 k8s 引擎。我想在主节点上运行 kube-proxy,以便通过主节点的 NodePort 类型的服务访问我的 pod。如何在主节点上运行 kube-proxy?
我使用 1.8.10-gke.0 k8s 版本。
kubernetes - kube-proxy 如何在主机节点上运行 iptables 命令,同时在进程隔离容器中运行?
我从事 kube-proxy 开发工作,目前正处于了解 kube-proxy 的目的和执行的阶段。
我知道 kube-proxy 会添加 iptables 规则以使用户能够访问暴露的 pod(这是 iptables 模式下的 kubernetes 服务)。
让我感到奇怪的是,这些规则是在运行 kube-proxy pod 的主机节点中添加的,目前尚不清楚该 pod 如何能够访问主机节点上的这些权限。
我查看了 kubernetes 的代码,但没有成功找到这个特定部分,所以如果您有任何想法、资源或文档可以帮助我解决这个问题,我们将不胜感激。
kubernetes - 使用 KOPS 的 AWS Kubernetes 集群 - Kube-dns 和 Kube-proxy 出现故障
我在 AWS 云上使用 KOPS 创建了一个 Kubernetes 集群。集群创建时没有任何问题,可以正常运行 10-15 小时。我已经在这个集群上部署了 SAP Vora2.1。然而,一般在 12-15 小时后,KOPS 集群会遇到与 kube-proxy 和 kube-dns 相关的问题。这些 pod 要么关闭,要么显示为已完成状态。还有很多重启。这最终导致我的应用程序 pod 出现问题,并且应用程序也出现故障。该应用程序使用 consul 进行服务发现,但是由于 kubernetes 基础服务无法正常工作,因此即使我尝试恢复 kube-proxy/kube-dns pod,应用程序也不会进入稳定状态。
这是一个以完全自动缩放模式设置的 3 节点集群(1 个主节点和 2 个节点)。覆盖网络使用默认的 kubenet。以下是系统遇到问题后 pod 状态的快照,
有没有人在 AWS 上遇到过与 KOPS kubernetes 相关的类似问题。欣赏是否有解决此问题的指针。
问候, 迪帕克
kubernetes - CoreOS VM 上 Kubernetes 的 Flannel pod 故障(和 DNS)
我按照本指南部署了一个 3 节点 CoreOS Vagrant VM,按照此处所述进行了修改。
虚拟机运行良好;K8s 控制器/工作节点很好;我可以部署 Pod;副本集;等等
但是,DNS 似乎不起作用,当我查看flannel
pod 的状态时,它们肯定是不健康的:
此外,当我尝试kubedns
使用相同的故障模式部署这些失败时:
因此,似乎10.3.0.1
无法从其他 pod 访问通过 IP 运行的控制器服务:
我的猜测是围绕 Flannel 的etcd
配置。或kube-proxy
YAML;所以,我在所有节点中添加了以下内容:
并重新启动flanneld
:
但是,这似乎没有任何好处;从正在运行的 Pod 中:
然后我查看kube-proxy.yaml
并怀疑--master
配置(对于工作节点)不正确,不知何故?
该127.0.0.1:8080
配置似乎仅(充其量)对控制器节点起作用,但肯定会在其他节点上无处可去?
--master
但是,如上所述修改并重新启动 pod 也没有任何好处。
底线是,如何使控制器 API 可访问10.3.0.1
?如何启用 KubeDNS(我尝试了“Hard Way”指南中的说明,但得到的故障模式与上述完全相同)。
提前谢谢了!
更新
这是带有flanneld
选项的文件:
我现在已经删除了 flannel 守护程序集:
并按照以下说明部署 Kube DNS:服务定义在这里,部署在这里:
但是,我仍然收到超时错误(实际上是一堆):
更新#2
在类似的系统设置上,我具有以下flanneld
配置:
(对于其他人来说也是如此,指向101
and ) -子网103
应该有什么东西config
吗?此外,控制器 API10.3.0.0/16
是否应该有一个条目(指向) ?类似于以下内容:172.17.8.101
10.3.0.1
有谁知道在哪里可以找到好的flanneld
文档(CoreOS 文档确实不够用,感觉有点“被遗弃”)?或者其他可以实际使用的东西?
谢谢!