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

0 投票
1 回答
2618 浏览

kubernetes - Kubernetes 集群中没有传出网络连接

我已经构建了具有 3 个工作节点和一个管理节点的集群。工作节点部署并设置了 kube-dns 和 calica。每台机器都有自己的外部 IP 和关联的 DNS。我成功运行了 nginx-ingress-controller 并且它的默认 404-endpoint 可以从外部访问。

现在,问题是由于某种原因不允许工作人员中的 pod 建立出站连接。当我将 exec 放入 pod 时,我无法 curl 也无法 ping,即使网络似乎在 pod 内配置得很好。我试图检查 calico 配置,但它非常混乱,我不知道它怎么可能是错误的。是否有任何默认的 calico/k8s 设置禁止从其节点传出连接?或者也许有人面临类似的问题?

我将按需提供日志输出,因为我不确定在检查这个问题时哪些信息是宝贵的。

0 投票
1 回答
374 浏览

kubernetes - Calico etcd 没有名为 calico 的键

我有一个带有 calico 网络的 2 节点 kubernetes 集群。所有的 pod 都已启动并运行。

我想使用 etcdctl 查询 calico-etcd,但出现以下错误。

关于我为什么会收到此错误的任何指示?

0 投票
1 回答
481 浏览

docker - Kubernetes 服务只能在 POD 的主机上访问

我有一个安装了 KUBEADM 的 3 节点裸机集群(使用运行 CentOS 7 的英特尔 NUC 构建)。

主节点提供2个不同的网络接口,一个用于外部访问,第二个配置为集群本地网络的DHCP服务器。通过以下 iptables 规则启用两个网络之间的 IP 转发和伪装

iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i {{lan_interface_name}} -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o {{wan_interface_name}} -j MASQUERADE iptables -A FORWARD -i {{wan_interface_name}} -o {{lan_interface_name}} -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -I FORWARD -i {{lan_interface_name}} -o {{wan_interface_name}} -j ACCEPT

此外,我还为集群中的每个节点启用了 docker 接口和 lan 接口之间的转发

iptables -I INPUT -i docker0 -j ACCEPT iptables -t nat -A POSTROUTING -o {{lan_interface_name}} -j MASQUERADE iptables -I FORWARD -i {{lan_interface_name}} -o docker0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -I FORWARD -i docker0 -o {{lan_interface_name}} -j ACCEPT

为了确保没有 iptables 问题,我默认启用了所有流量

iptables -P OUTPUT ACCEPT iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT

虽然这是 /etc/sysctl.conf 文件

net.ipv4.ip_forward=1 net.bridge.bridge-nf-call-iptables=1

我按照 kubeadm 的说明使用 CALICO ( https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/ ) 启动了一个集群,并且除了每个 POD 都可以访问 kube-dns 之外,一切似乎都正常工作在每个节点中)用于公开的服务。

只是为了测试,我创建了一个 nginx 部署并通过 nodeport 公开它: kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 30m nginx NodePort 10.96.227.49 <none> 80:31242/TCP 22m

如果我尝试在 POD 的同一节点内卷曲集群 IP,一切都很好,而如果我尝试在另一个节点卷曲请求超时时卷曲它。

任何帮助将非常感激。

0 投票
1 回答
2618 浏览

docker - Kubernetes Calico 节点 'XXXXXXXXXXX' 已经在使用 IPv4 地址 XXXXXXXXX,CrashLoopBackOff

我使用 AWS Kubernetes 快速入门在 VPC 和私有子网中创建 Kubernetes 集群:https://aws-quickstart.s3.amazonaws.com/quickstart-heptio/doc/heptio-kubernetes-on-the-aws-cloud。 .pdf _ 它运行了一段时间。我的 Kubernetes 集群上安装了 Calico。我有两个节点和一个主节点。主节点上的 calico pod 运行良好,节点上的 calico pod 处于 crashloopbackoff 状态:

描述其中一个坠毁的吊舱:

同一 pod 的日志:

因此,查找节点 IP 地址似乎存在冲突,或者 Calico 似乎认为 IP 已分配给另一个节点。快速搜索我发现了这个线程:https ://github.com/projectcalico/calico/issues/1628 。我看到这应该通过将 IP_AUTODETECTION_METHOD 设置为 can-reach=DESTINATION 来解决,我假设它是“can-reach=10.0.0.237”。此配置是在 calico/node 容器上设置的环境变量。我一直在尝试进入容器本身,但 kubectl 告诉我找不到容器:

我怀疑这是由于 Calico 无法分配 IP。所以我登录到主机并尝试使用 docker 在容器上运行:

所以我猜容器中没有要执行的shell。Kubernetes 无法执行的原因是有道理的。我尝试在外部运行命令以列出环境变量,但我找不到任何命令,但是我可能会错误地运行这些命令:

好的,所以也许我正在以错误的方式解决这个问题。我应该尝试使用 Kubernetes 更改 Calico 配置文件并重新部署它吗?我在哪里可以在我的系统上找到这些?我一直无法找到在哪里设置环境变量。

0 投票
2 回答
403 浏览

kubernetes - Kubernetes calico 网络策略

我是 Kubernetes 的新手,正在尝试学习 calico 网络。我正在关注此文档(https://docs.aws.amazon.com/eks/latest/userguide/calico.html),并尝试创建一个网络策略,以使流量在后端到客户端之间流动:

我完成了文档中的所有 10 个步骤,并尝试通过创建一个策略来进行测试,该策略将使用上述策略将流量从后端发送到客户端。

当我应用该策略时没有错误,但我看不到两者之间的流量/连接。

请让我知道出了什么问题。

0 投票
1 回答
513 浏览

kubernetes - eks calico 允许从 aws classic elb 入站到 pod

我正在尝试设置网络策略以仅允许从 aws 经典负载均衡器到 Pod 的入站流量。没有其他东西可以与包含任何 pod 副本的 pod 通信。我已经配置了以下但它不起作用。有什么我想念的想法吗?一旦我应用它,负载均衡器上的健康检查就会失败。

0 投票
1 回答
791 浏览

kubernetes - 在 AWS EKS 上使用 Calico 进行策略和联网?

AWS EKS 使用他们自己的 CNI 插件,并且有一些文档允许您安装 Calico 来管理策略。出于多种原因,我想让 Calico 也管理网络。

根据安装说明,我似乎找不到执行任一选项的方法:

似乎不可行,因为我找不到访问 EKS 控制平面 etcd 端点的方法。如果我要在集群中部署自己的 etcd pod,我需要使用 AWS CNI 插件来获取 IP 地址,这样就行不通了。我可以将自己的 etcd 集群带到 Kubernetes 之外,但这似乎有点荒谬。

Kubernetes API 数据存储

此选项希望我将设置更改为我在 AWS EKS 托管控制平面中无权访问的控制器。

0 投票
0 回答
528 浏览

windows - 带有 calico 的 kubernetes windows worker 节点无法部署 pod

我尝试使用kubeadm.exe join加入 Windows 工作节点,但它不工作。

然后我尝试参考这个文档nwoodmsft/SDN/CalicoFelix.md,在这之后,节点状态就像这样

豆荚:

kube-proxy 和 calico 不应该是容器的方式,它是在 Windows 下使用 kube-proxy.exe 运行的。

calico pods 错误信息:

演示.yaml

演示 pod 错误日志

配置: “c:\k\”

cni 目录默认为空。然后添加 calico-felix.exe 和配置文件L2Brige.conf

我尝试用谷歌搜索,需要 cni,但没有找到 calico cni。在这种情况下我该怎么办,构建Windows calico cni?

0 投票
1 回答
608 浏览

kubernetes - gke 集群从 1.10.x 升级到 1.11.x 后,calico-node pod 不启动

我们已将 GKE 集群升级到 1.11.x,尽管该过程成功完成,但集群无法正常工作。有多个 pod 崩溃或保持 peding 并且 calico 网络上的所有点都不起作用:

它的日志显示了这个信息:

kubectl -n kube-system logs -f calico-node-2hhfz calico-node

注意最后的错误(could not find the requested resource (post BGPConfigurations.crd.projectcalico.org)):

知道我们如何修复集群吗?

0 投票
0 回答
212 浏览

kubernetes - 网络策略白名单 IP

我在 IBM Cloud 上使用 Kubernetes,并尝试创建一个白名单策略以应用于入口。

我已经安装了 calico 来创建 kubernetes 策略 https://console.bluemix.net/docs/containers/cs_network_policy.html#network_policies

并按照本教程 https://console.bluemix.net/docs/containers/cs_tutorials_policies.html#lesson2

我还启用了 IP 源的保留: https ://console.bluemix.net/docs/containers/cs_ingress.html#preserve_source_ip

当策略直接应用于负载均衡器时,它运行良好,而不是当应用于入口时,它不起作用。

原因是传入的 IP 地址映射到入口的内部 IP 地址。

由于这个原因,负载均衡器不会将 IP 识别为允许的 IP(因为入口的 IP 地址不在白名单中)并且连接被阻止。

您可以在下面找到该场景的架构: 在此处输入图像描述

我该如何解决这个问题?