问题标签 [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 - kube-apiserver 是否期望 kube-proxy 的存在?
我一直在运行我的 kubernetes master 与我的 kubernetes 节点分开。所以我有kube-apiserver
,kube-scheduler
并且kube-controllermanager
运行在没有kubelet
,kube-proxy
或flannel
.
到目前为止,这已经很完美了。但是,今天我尝试设置Web UI并通过 API 服务器访问它。访问时出现以下错误http://kube-master-0:8080/ui
:
Error: 'dial tcp 172.16.72.12:9090: getsockopt: connection timed out'
Trying to reach: 'http://172.16.72.12:9090/'
这向我表明 API 服务器正在尝试连接到 pod IP,因为我们没有在此主机上运行 flannel 或 kube-proxy,因此172.16.72.12
不会路由 IP。
我是否应该在我的 API 服务器上运行 kube-proxy 和 flannel?是否有另一种方法可以让 API 服务器代理 UI?
kubernetes - kube-proxy `--masquerade-all=true` 是什么意思?
kube -proxy 管理页面说:
但它确实解释得很详细。
- 我什么时候应该设置
--masquerade-all
为真? - 它解决了什么问题?
- 如果它设置会发生什么
--masquerade-all=false
?相比有什么区别--masqurade-all=true
?
kubernetes - 如何手动清除 kubernetes 中已删除的服务?
因此,我正在试验并添加了一个将 ExternalIP 设置为最终主机 ipv6 地址的服务。
这是 Kubernetes 接受但不支持的配置,会导致 kube-proxy 失败。
从 kube-proxy 日志中:
-A KUBE-SERVICES -m comment --comment "default/frontend: external IP" -m tcp -p tcp -d 207.154.225.168/32 --dport 80 -j KUBE-MARK-MASQ
-A KUBE-SERVICES -m评论 --comment "默认/前端:外部 IP" -m tcp -p tcp -d 207.154.225.168/32 --dport 80 -m physdev !--physdev-is-in -m addrtype !--src-type LOCAL -j KUBE-SVC-GYQQTB6TY565JPRW
-A KUBE-SERVICES -m comment --comment "default/frontend: external IP" -m tcp -p tcp -d 207.154.225.168/32 --dport 80 - m addrtype --dst-type LOCAL -j KUBE-SVC-GYQQTB6TY565JPRW
-A KUBE-SERVICES -m comment --comment "default/frontend: external IP" -m tcp -p tcp -d 2a03:b0c0:3:d0: :43bb:4001/32 --dport 80 -j KUBE-MARK-MASQ
-A KUBE-SERVICES -m comment --comment "default/frontend: external IP" -m tcp -p tcp -d 2a03:b0c0:3:d0::43bb:4001/32 --dport 80 -m physdev !--physdev-is-in -m addrtype !--src-type LOCAL -j KUBE-SVC-GYQQTB6TY565JPRWE0502 07:38:39.913815 1 proxier.go:1312] 无法执行 iptables-restore:退出状态 2(iptables-restore v1.4.21:主机/网络iptables-restore -h' 或 'iptables-restore --help'更多信息。
2a03:b0c0:3:d0::43bb:4001' not found
Error occurred at line: 53 Try
这就是问题所在:没有定义“默认/前端”服务。我已明确删除它,
kubectl get services --namespace=default
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.3.0.1 443/TCP 3d
但是,我所有节点上的 kube-proxy 仍会尝试添加这些,这会导致在此错误之后创建的所有服务中断。
所以,问题是,我如何从我的集群中清除这个服务的幽灵?
kubernetes - Kubernetes/CoresOS 节点无法与 ApiServer Kube 代理通信问题
我按照本指南https://coreos.com/kubernetes/docs/latest/deploy-workers.html设置了 Kubernetes 网络,当我运行仪表板或 DNS 附加组件时,它们在 25 秒后导致 crashloopbackoff。然后我按照这个https://github.com/kubernetes/dashboard/blob/master/docs/user-guide/troubleshooting.md执行时超时
kubectl exec test-701078429-s5kca -- curl -k https://10.3.0.1
请注意,如果我执行 kubectl exec test-701078429-s5kca -- curl -k https://192.168.3.240它有效(公共 IP)
如果我在主节点上执行 curl -k https://10.3.0.1也可以。
所以问题是我在 10.2.0.0/16 上的 Kubelet 无法与 10.3.0.1/24 上的 api 服务器通信,这表明它可能是 kube 代理问题。仅供参考:我可以使用 10.2.xx 从一台机器上的一个节点内部成功 ping 到另一台机器上的另一个节点
kubernetes - Kubernetes on openstack,启动的应用程序无法访问
OpenStack VM 上的单节点 kubernetes 的方式是:
虚拟机 IP:10.120.20.227(来自外部)
etcd 版本 3.0.16
kubectl --version 1.5.7
Flannel 版本 0.6.1
当我 ssh 进入机器时,我可以看到 ip 192.168.0.5 所以 etcd 服务正在 192.168.0.5 上运行,我可以从 VM 本身访问在 VM 中启动的每个应用程序。但是从外部 openstack 集群我无法使用虚拟机公共 IP 访问应用程序。
kube-proxy 错误是
如果在任何随机端口上的 VM 上启动任何 Web 服务,我将访问 Web 应用程序。但是如果我使用 kubectl 启动应用程序,我将无法从其他区域访问这是否需要任何特殊路由?或者 kube-proxy 有什么问题?
kubernetes - Kubernetes kube-proxy 机制
在 Kubernetes 中,假设我们有 3 个 pod,它们物理上托管在节点 X、Y 和 Z 上。当我使用“kubectl expose”将它们公开为服务时,它们都是集群中的节点(除了 X、Y 和 Z ) 配置方式相同吗?具体来说,集群内每个节点中的 kube-proxy 都会监视 apiserver,构建一堆 iptables 规则并引用门户 IP(由 apiserver 选择),并将这些规则插入它所在的节点?
我认为必须在所有节点上完成它的原因是集群不知道客户端将从哪个节点来访问门户 IP?
kubernetes - 如何访问本地集群中的 Kubernetes pod?
我已经建立了一个具有一个主节点和三个从节点的实验性本地Kubernetes 集群。我为侦听端口 10001 的自定义服务创建了部署。目标是访问具有/hello
稳定 IP/主机名的示例性端点,例如http://<master>:10001/hello
.
部署部署后,Pod 已创建良好并可通过其集群 IP 访问。
我了解云提供商的解决方案是为部署创建一个负载均衡器服务,这样您就可以只是expose
一个服务。但是,本地集群显然不支持此功能。为此目的设置Ingress似乎有点过头了。不是吗?
它似乎更像kube proxy
是要走的路。但是,当我kube proxy --port <port>
在主节点上运行时,我可以访问http://<master>:<port>/api/...
,但不能访问实际的 pod。
有很多相关的问题(例如如何通过 kubernetes 集群 ip 访问服务?),但没有(接受)答案。关于该主题的 Kubernetes文档也相当稀少,所以我什至不确定从概念上来说什么是正确的方法。
因此,我正在寻找一个直接的解决方案和/或一个好的教程。这似乎是一个非常典型的用例,但缺乏明确的路径。
kubernetes - Kube-proxy 无法检索节点信息 - 无效的 nodeIP
几个月来我一直在尝试设置 Kubernetes 集群,但到目前为止我还没有运气。
我正在尝试将其设置在 4台运行coreOS的裸机PC 上。我刚刚重新安装了所有东西,但我遇到了和以前一样的问题。我正在关注本教程。我想我已经正确配置了一切,但不是 100% 确定。当我重新启动任何机器时,kubelet 和 flanneld 服务正在运行,但是在检查服务状态时我看到以下错误:systemctl status
kubelet 错误: Process: 1246 ExecStartPre=/usr/bin/rkt rm --uuid-file=/var/run/kubelet-pod.uuid (code=exited, status=254)
法兰错误:Process: 1057 ExecStartPre=/usr/bin/rkt rm --uuid-file=/var/lib/coreos/flannel-wrapper.uuid (code=exited, status=254)
如果我重新启动这两个服务,它们就可以工作,或者至少看起来它们可以工作 - 我没有收到任何错误。
其他一切似乎都运行良好,所以剩下的唯一问题(我认为)是所有节点上的 kube-proxy 服务。
如果我运行,kubectl get pods
我会看到所有 pod 都在运行:
这个问题的答案建议检查是否kubectl get node
返回在 kubelet 上注册的相同名称。据我检查日志,节点注册正确,这是输出kubectl get node
我使用的教程(上面链接)建议我使用--hostname-override
,但如果我试图在本地卷曲它,我无法获取主节点(kubernetes-4)上的节点信息。所以我删除了它,我现在可以正常获取节点信息。
有人建议这可能是法兰绒问题,我应该检查法兰绒端口。使用netstat -lntu
我得到以下输出:
所以我认为端口很好?
etcd2 也可以工作,etcdctlcluster-health
显示所有节点都是健康的
这是 cloud-config 的一部分,它在重启时启动 etcd2,此外我只在其中存储 ssh 密钥和节点用户名/密码/组:
这是/etc/flannel/options.env
文件的内容:
相同的端点--etcd-servers
在kube-apiserver.yaml
文件中
任何想法/建议可能是什么问题?另外,如果缺少一些细节,请告诉我,我会将它们添加到帖子中。
编辑:我忘了包括 kube-proxy 日志。
主节点 kube-proxy 日志:
工作节点 kube-proxy 日志:
kubernetes - 在 GKE/Kubernetes 中配置 kube-proxy 代理模式的新方法?
我看到最近的拉取请求被合并以删除net.experimental.kubernetes.io/proxy-mode
和net.beta.kubernetes.io/proxy-mode
注释。
当 proxymode 设置为 时,我的应用程序的反向代理服务器当前工作得更好userspace
,我想在升级后继续使用此设置。
由于 Google Container Engine 托管 Kubernetes master,我无法直接访问该 VM,如何在不使用注释的情况下配置 kube-proxy 代理模式?理想情况下,我可以更改集群范围的设置,以便新节点(在自动缩放之后)也使用userspace
代理模式。