问题标签 [project-calico]
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 - 如何在 GCP 上使用 Calico 启用对我的 Kubernetes 服务的外部访问?
我有一个从这里部署的带有 Calico 的一主一工人 Kubernetes 集群,清单没有任何更改。主服务器有一个内部 IP 地址,10.132.0.30
我试图在主服务器上公开我的服务(在工作人员上运行),如下所示:
curl http://10.132.0.30
from master 按预期工作,但是从我的笔记本电脑卷曲 master 在其外部 IP 地址上挂起,即使我可以使用以下命令看到连接tcpdump
:
在其他接口上运行其他tcpdump
命令似乎数据包到达 nginx 但没有返回(cali3561fc118c0
是我的 nginx Pod 在根网络命名空间中的工作人员上的接口,并且192.168.1.4
是它分配的 IP):
我想有很多可能的问题,但我有什么明显的遗漏吗?
编辑:我已经听从了 Calico 文档的建议,但没有运气
Kubernetes 版本:1.13.4
amazon-web-services - 这些 pod 是否在覆盖网络内?
如何确认此 Kubernetes 集群中的某些 pod 是否在 Calico 覆盖网络内运行?
豆荚名称:
具体来说,当我运行时kubectl get pods --all-namespaces
,结果列表中只有两个节点的calico
名称中有这个词。其他 pod,如etcd
andkube-controller-manager
和其他 pod 的名称中没有这个词calico
。根据我在网上阅读的内容,其他 podcalico
的名称中应该有这个词。
stdout
从应用印花布
应用印花布产生的标准输出如下:
集群是如何创建的:
安装集群的命令是:
这是在 Amazon Linux 2 主机上的 AWS 上运行的。
kubernetes - 网络策略是否应用于服务或端点?
如果我有 Kubernetes 服务(具有端口 12345 的集群 IP),它后面有三个 pod 作为命名空间中的端点(端口 16789),那么网络策略中应该将哪些内容列入白名单,只是服务端口或端点端口或 DNS 端口?网络策略只能将 pod/命名空间标签作为选择器,而不是服务标签。从文档中不清楚。尝试从不同的命名空间访问服务。该环境使用 Calico 作为 CNI。
kubernetes - 为什么同一节点的pod可以互相ping通,但不同节点的pod不能ping通?
我有两个不同网络环境的k8s集群,它们的安装配置完全一样。k8s的版本是1.14.0,网络插件使用calico。一个集群很好,但另一个不是。
问题是 pod 的 ip 不能在不同的机器上相互 ping 通。例如,A pod 在 A 机器上,它的 ip 是 172.20.0.13,B pod 在 A 机器上,ip 是 172.20.0.14,C pod 在 C 机器上,ip 是 172.20.1.3。在机器 A 中,pod A 和 pod B 可以互相 ping 通,但无法 ping 通 pod C。
我应该怎么办。
kubernetes - 使用 kubeadm 创建的 k8s 集群上的 pod 到 pod 通信问题
我在 GCP 上用 kubeadm(1 个 master + 2 个 worker)创建了一个 2 节点 k8s 集群,一切似乎都很好,除了 pod 到 pod 的通信。
因此,首先,集群中没有明显的问题。所有 pod 都在运行。没有错误,没有crushloopbackoffs,没有挂起的pod。
我强制使用以下场景进行测试:
这些是服务:
nginx
和nginy
服务指向nginx-xxx
和nginy-xxx
pod,并且正在运行nginx
,curlers
是带有 curl 和 ping 的 pod。其中一个在主节点上运行,另一个在 worker-node-1 上运行。如果我访问在 worker-node-1 (curler-7668c66bf5-6c6v8) 上运行的 curler pod 和curl
同一节点上的 nginx pod,它工作正常。
如果我通过服务名称尝试相同的事情,它会像coredns
运行一样工作一半;一个在worker-node-1上,另一个在worker-node-2上。我相信如果请求发送到在 worker-node-1 上运行的 coredns pod,它可以工作,但是当它发送到 worker-node-2 时,它不会。
所以,我的 pod 到 pod 通信肯定不起作用。我检查了 calico daemonset pod 的日志,但没有任何可疑之处。我确实在kube-proxy
pod 中有一些可疑的日志:
谁能告诉我问题是否可能是由于kube-proxy
iptables 配置错误造成的?或者指出我遗漏的任何东西?
kubernetes - 如何阻止 kubernetes 向 usage.projectcalico.org 报告?
我发现我的 kubernetes 集群正在向 usage.projectcalico.org 发送报告,如何禁用它以及使用 usage.projectcalico.org 的具体情况如何?
kubernetes - kubernetes networkpolicy namespaceSelector 在命名空间没有标签时选择
我正在尝试添加一个印花布网络策略,以允许我的命名空间与 kube-system 命名空间通信。但是在我的 k8s 集群中,kube-system 没有附加标签,所以我无法在其中选择 pod。以下是我尝试过的,但它不起作用。
我有一种方法可以仅按名称选择名称空间吗?
kubernetes - 如何在 k8s 中检测哪个 pod 发出网络请求?
外部防火墙日志显示来自 < 节点 IP >:< 大端口 > 的连接被阻止。当前集群使用 calico 网络。
如何检测尝试连接的 pod?
kubernetes - 与 etcd 直接通信的 Kubernetes 模块是什么
我试图了解 kubernetes 模块是如何与 etcd 交互的。我知道 Kubernetes 模块本身是无状态的,它们将状态保存在 etcd 中。但是当谈到模块如何与 etcd 交互时,我感到很困惑。我在这方面看到了相互矛盾的文本,有人说所有 etcd 交互都是通过 apiserver 发生的,而另一些人说所有模块都与 etcd 交互。
我正在寻找更改 etcd 端点和重新启动集成点的可能性,以便它们可以使用新的 etcd 实例。我没有时间去查看代码来理解这部分,所以希望这里的人可以帮助我。