问题标签 [flannel]

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 回答
287 浏览

docker - Kuberntes master 没有在 OpenStack 热中启动

上周左右,我一直在尝试使用本指南在 OpenStack 中设置 Kubernetes 集群。我在这个问题中描述的过程中遇到了一些问题-> kube-up.sh 在 OpenStack 中失败

在发出./cluster/kube-up.sh脚本时,它会尝试使用 openstack 堆栈创建步骤 ( Log ) 来启动集群。在这里,由于某种原因,kubernetes master 没有正确启动,这就是安装失败的地方。我能够通过 SSH 连接到主节点并在/var/log/cloud-init-output.log

在进一步挖掘时,我在 /var/log/messages 文件中找到了这个片段 - > https://paste.ubuntu.com/23733430/

所以我会假设 Docker 守护进程没有启动。我的 etcd 配置也有一些问题,因为 flanneld 服务也没有启动。这是输出service flanneld status

我的 etcd 守护进程正在运行:

虽然它在非标准端口上运行。

我也在代理下的公司网络中。任何有关如何进一步调试的指针表示赞赏。到目前为止,我在如何继续这件事上陷入了死胡同。在 Kubernetes 松弛通道中询问也产生了零结果!

0 投票
2 回答
5166 浏览

dns - kube-dns 保持 ContainerCreating 状态

我有 5 台机器运行 Ubuntu 16.04.1 LTS。我想将它们设置为 Kubernetes 集群。我ḿ 尝试按照他们正在使用的入门指南kubeadm进行操作。

在步骤3/4 安装 pod network之前一切正常。我查看了插件页面以查找 pod 网络并选择了 flannel 覆盖网络。iǘe将yaml文件复制到本机并执行:

结果是:

所以我认为一切正常,但是当我显示所有 pod 内容时:

问题是 kube-dns 保持在 ContainerCreating 状态。我不知道该怎么办。

0 投票
1 回答
3642 浏览

networking - Kubernetes 网络问题 - 无法从外部访问服务节点端口

我有一个 3x 节点 kubernetes 集群:node1(主)、node2 和 node3。我有一个当前计划在 node3 上的 pod,我希望将其暴露在集群外部。所以我有一个nodePort类型的服务,nodePort设置为30080。我可以curl localhost:30080在每个节点上本地成功地做:node1、node2和node3。但在外部,curl nodeX:30080仅适用于 node3。其他两个超时。tcpdump 确认 node1 和 node2 正在接收请求但没有响应。

我怎样才能使这对所有三个节点都有效,这样我就不必跟踪 Pod 当前安排在哪个节点上?我最好的猜测是,这是一个 iptables 问题,如果源 IP 不是本地主机,我会错过 DNAT 流量的 iptables 规则。话虽这么说,我不知道如何排除故障以确认这是问题,然后如何解决它。似乎该规则应该自动存在。

这是我的设置的一些信息:
kube-ravi196: 10.163.148.196
kube-ravi197: 10.163.148.197
kube-ravi198: 10.163.148.198
CNI: Canal (flannel + calico)
Host OS: Ubuntu 16.04
Cluster setup through kubeadm

请注意,来自节点 ravi-kube196 的 curl localhost 是成功的(404 很好)。

但是尝试从集群外的机器卷曲 IP 失败:

然后尝试 curl 调度 pod 的节点 IP 工作。:

以下是 196 节点上该服务/pod 的 iptables 规则:

来自 196 个节点的 kube-proxy 日志:

0 投票
0 回答
939 浏览

kubernetes - flannel pod (k8z_install-cni) 在新节点加入 kubernetes 集群时出现问题 (v1.5.1)

我正在尝试使用 kubeadm 将节点加入我的 kubernetes 集群

我跟着这个教程

我的 kubernetes 版本是 1.5.1

我从这个链接得到了法兰绒 yaml

我在安装过程中没有遇到任何问题,但是当我加入一个新节点时,我可以看到:

我可以在 pod 描述中看到以下问题:

来自容器 k8z_install-cni 的 docker 日志:

问题:我该如何解决这个问题?

非常感谢您

0 投票
1 回答
1123 浏览

kubernetes - 启动法兰绒时出现 rkt 发现失败错误(Kubernetes 设置)

我们正在尝试按照官方分步文档在 3 个带有 coreos 的节点上设置 Kubernetes 集群 - https://coreos.com/kubernetes/docs/latest/deploy-master.html 服务器位于公司代理后面,并在中定义了代理服务两个都

以下被选中

运行 systemctl daemon-reload 和 systemctl start flannel 后,出现以下错误

我们尝试了不同的文档https://www.upcloud.com/support/deploy-kubernetes-coreos/,在启动 kubelet 时出现相同类型的错误。

似乎是公司代理背后的 rkt 和 quay 注册问题。让我们知道我们是否遗漏了什么或配置了错误。

0 投票
1 回答
3089 浏览

kubernetes - 无法使用相同节点访问集群 IP

我正在使用 v1.5.1 版本在 CentOS 上部署 k8s 集群

拥有三个节点:

  • kube-01(掌握)
  • kube-02
  • kube-03

使用一个 pod 进行部署,以Deployment-Apod ip命名Pod-A-IP,部署在kube-03

有一个包含两个 pod 的部署,名为Deployment-B. 每个工作节点都有一个 pod。我们不断Pod-B-02呼吁_kube-02Pod-B-03kube-03

使用类型NodePort 公开Deployment-A,我有一个集群 IPService-A-IP

  • Pod-B-02访问Service-A-IP,好的
  • Pod-B-03访问Service-A-IP,超时
  • kube-02访问Service-A-IP,好的
  • kube-03访问Service-A-IP,好的

似乎从具有服务后端的同一节点中的 pod 访问服务会遇到此问题。


更新于 2017 年 2 月 20 日星期一 16:22:47 CST

我已经捕获了网络流量Pod-B-03

  • 10.244.1.10是 pod ipPod-B-03
  • 10.107.25.245Service-A-IP
  • 10.244.1.2Pod-A-IP

我用的是法兰绒。我建议法兰绒有问题吗?

0 投票
2 回答
3854 浏览

docker - Kubernetes flannel 网络无法按预期工作

我在使用 flannel 安装 kubeadm 时遇到了一个非常奇怪的 kubernetes 网络问题。能否请你帮忙?

我有 3 个节点,1 个用于主节点,2 个用于小节点。并且有 4 个 pod 正在运行。

列出所有节点(添加一列 # 以简化描述)

列出所有 POD(添加一列 # 以简化描述)

我做了 2 个测试,一个用于节点 -> pod,另一个用于 pod-> pod。

在nodes->pods测试中,结果是:

测试 1:节点 => POD 测试

从节点 #1 (c03) => 为什么只能 ping 本地节点 pod?

从节点 #2 (c04) => 所有 pod 都是远程的,为什么不能 ping 节点 #3 上的 pod?

从节点 #3 (c06) => 这是一个预期的结果

测试 2:POD=>POD => 为什么 pod 只能 ping 本地节点 pod?

从 POD #1 @ Node#1

从 POD #2 @ Node#3

从 POD #3 @ Node#3

从 POD #4 @ Node#1

环境信息

K8s版本

法兰绒豆荚

系统吊舱

法兰绒与导轨一起安装:

节点 1 (c03) 的网络信息

0 投票
1 回答
476 浏览

kubernetes - 如何定义一个 DaemonSet 来创建略有不同的 pod?

如何定义 DaemonSet 的单个定义以创建稍微不同的 pod?我所说的不同 pod 是指从不同命令创建的 pod。我目前制作了两个不同的 DaemonSet 对象来创建两种不同类型的 pod。

让我告诉你细节。

我一直在修改 kube-flannel.yml,尤其是 DaemonSet 的定义。我想将“--iface =”添加到 flanneld [“/opt/bin/flanneld”、“--ip-masq”、“--kube-subnet-mgr”] 并且我想使用两个不同的基于以太网接口在节点标签上。

我有三种不同类型的节点:1)具有两个以太网接口的主节点:用于内部网络的 eth0 和用于外部网络的 eth3 2)具有一个以太网接口的从节点:用于内部网络的 eth0 3)具有一个以太网接口的新添加节点: p2p1 用于内部网络

当我有 1) 和 2) 时,我可以使用以下命令:[ "/opt/bin/flanneld", "--ip-masq", "--kube-subnet-mgr", "--iface= --eth0"] 我必须添加 --iface 选项,否则主节点上的 flanneld 会自动检测 eth3 而非 eth0,这就是我手动添加 iface 选项的原因。

现在我有了 3),我必须使用不同的命令定义两个 DaemonSet:["/opt/bin/flanneld"、"--ip-masq"、"--kube-subnet-mgr"、"--iface =--eth0"] 对于 1) 和 2) , [ "/opt/bin/flanneld", "--ip-masq", "--kube-subnet-mgr", "--iface=--p2p1" ] for 3) 标签选择器用于告诉哪个 DaemonSet 用于节点。整个定义附在最后。

有没有更优雅的方法可以从单个 DaemonSet 定义创建略有不同的 pod?最好只有一个带有占位符的定义,可以用特定标签的值代替。

否则我可以通过以不同的方式设置法兰绒来做到这一点?如果我们可以将以太网接口列表提供给 --iface 选项,那就太好了,但我的同事发现只有一个接口/ip 可以提供给 --iface 选项。

谢谢。

0 投票
1 回答
4280 浏览

kubernetes - Kubernetes:经常收到“添加网络时出错:网络中没有可用的 IP 地址:cbr0”

我使用 kubeadm 在带有 flannel 的 Ubuntu 16.04 LTS 上设置了一个单节点 Kubernetes 集群。

大多数情况下一切正常,但每隔几天,集群就会进入无法调度新 Pod 的状态——Pod 卡在“Pending”状态,当我kubectl describe pod在这些 Pod 中时,我会收到类似这样的错误消息:

我发现了这个stackoverflow 问题和他建议的解决方法。它确实有助于恢复(虽然需要几分钟),但问题会在一段时间后再次出现......

我也遇到了这个未解决的问题,并且使用建议的解决方法也恢复了问题,但问题又回来了。另外,这不完全是我的情况,在找到解决方法后问题就解决了......:\

技术细节:

使用以下命令启动集群:

一些可能相关的 syslog 日志(我有很多):

非常感谢!

编辑:

我能够重现它。这似乎是 kubelet CIDR 中 IP 地址的耗尽。发现:

  • 首先,节点的 podCIDR 是(通过kubectl get node -o yaml):(podCIDR: 10.244.0.0/24顺便说一句,为什么不 /16 作为我在 kubeadm commnad 中设置的集群 CIDR?)。

  • 第二:

    $ sudo ls -la /var/lib/cni/networks/cbr0 | wc -l

    256 (也就是分配了256个IP吧?)

  • 但是,尽管我目前运行的 Kubernetes pod 和服务不超过 256 个,但还是会发生这种情况:

    $ kubectl get all --all-namespaces | wc -l

    180

    ### (Yes, this includes not only pods and services, but also jobs, deployments and replicasets)

那么,家里来的IP地址都用完了吗?如何解决?不可能这些解决方法是唯一的方法......

再次感谢。

编辑 (2)

另一个相关问题:https ://github.com/containernetworking/cni/issues/306

0 投票
0 回答
474 浏览

coreos - Flannel-Wrapper 无法解析 UUID:没有这样的文件

安装 coreos(稳定版、beta 版或 alpha 版)后,我无法启动 flanneld.service,因为依赖 flannel-docker-opts.service 失败。它给出了一个错误

rm:无法从文件中解析 UUID:打开 /var/lib/coreos/flannel-wrapper2.uuid:没有这样的文件或目录

我是 coreos 的新手,正在尝试在其上安装 kubernetes;为此,我有一个单独的 etcd 集群为他们提供 SSL 证书。我在映像上有一个 etcd 代理并正在运行,但法兰绒不会启动 docker 来运行。

我不确定我是否应该在我的云配置中包含更多配置来解决这个问题。我似乎在 flannel-wrapper 或 flannel-docker-opts.service 上找不到任何东西

这是我的 cloud-config.yaml