问题标签 [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 投票
2 回答
665 浏览

kubernetes - flannel 配置使用超过 255 个节点

我需要在 kubernetes 上安装法兰绒。我的净射程是10.101.0.0/16。我需要管理大约 1500 个节点(裸机)。我的法兰绒配置是

Flannel 将为每个节点设置10.101.x.0/32,因此最大 noes 数为 255。我应该如何更改配置以使其与 1500 个节点一起使用?

0 投票
0 回答
372 浏览

linux - flanneld 无法与基本 kubernetes 安装一起运行 centos | 虚拟盒子

感谢您的阅读。

我想以我在开发运维方面很弱的事实作为开头!:)

首先,我的环境:3 个节点集群,每个集群都是在 VirtualBox 5.1.3 中运行的 CentOS 7 VM。我启用了一个额外的网络适配器,运行一个仅对虚拟机可见的内部网络。

我已将 VM 配置为使用附加适配器,并且能够通过其网络 ping 所有节点。

etcd 配置:

nmcli 输出:

我正在阅读以下文档中的安装/配置说明。

我想通过这个完整的安装来掌握产品的整体拓扑结构。

安装似乎很好,我可以将 pod 部署到集群。问题是 flanneld 似乎没有工作。我将它明确绑定到配置(enp0s8)中的内部网络适配器,但是它显示:

对此问题的任何见解将不胜感激。在接触社区之前,我已经做了尽职调查!

提前致谢。

布雷登

0 投票
1 回答
1874 浏览

kubernetes - Kubernetes 无法创建禁用 IPv6 的 Pod 沙箱

我昨天注意到 Kubernetes 的以下情况。我必须使用 kubeadm 在 Redhat 7.3 OS 上安装 Kubernetes。作为网络插件,我使用法兰绒。一切都很顺利,直到我发现我的 DNS pod 无法启动并出现以下错误:

我检查了我的 cni 界面,发现以下内容:

没有IP地址和mac。然后我检查了目录/var/lib/cni/networks/cbr0/。有一些文件对应于由 flannel 分配给该主机的网络 10.244.0.0/24。

然后我检查了日志:

所以有些东西连接到 ipv6 但我不知道为什么,因为我们不使用 IPv6 协议。然后我在内核级别检查了 IPv6 模块,发现它被禁用了:

只是为了测试,我尝试启用它,它帮助 pod 获得了 IP 一切变得正常。

有人可以澄清这种情况,也许你面临同样的问题?如果我不使用 IPv6,为什么我不能禁用它?

先感谢您。

0 投票
1 回答
462 浏览

kubernetes - 我应该在裸机上安装 flannel 作为系统服务还是使用 k8s 作为 DaemonSet 运行它?

尝试在裸机上构建 k8s 集群。我使用 CoreOS 作为我的节点的主机操作系统。而且我对我应该为集群网络安装法兰绒的方式有点困惑。

我从文档中看到,我可以将它下载到我的主机并使用systemd或使用k8s DaemonSet manifest启动它。

我个人喜欢 DaemonSet 的想法,因为 k8s 将负责在每个节点上运行 flannel。但是将 flannel 作为 k8s-DaemonSet 运行有什么缺点吗?

文档还说我应该在任何其他 pod 之前运行 flannel。这就是为什么我的第一个想法是将它放在为 kubelet--pod-manifest参数指定的路径上。但是由于 flannel 的 yaml 包含 not PodbutDaemonSet和一些与 RBAC 相关的实体,因此使用--pod-manifestdir 部署 flannel 时出现以下错误:

无法处理清单文件“/etc/kubernetes/manifests/flannel.yaml”:/etc/kubernetes/manifests/flannel.yaml:无法解析为 pod(无效 pod:&rbac.ClusterRole{TypeMeta:v1.TypeMeta{ Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"flannel", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation: 0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds: (*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)( nil), 终结器:[]string(nil), ClusterName:""}, 规则:[]rbac.PolicyRule{rbac.PolicyRule{Verbs:[]string{"get"}, APIGroups:[]string{""}, Resources:[]string{"pods"}, ResourceNames:[]string(nil), NonResourceURLs:[]string(nil)}, rbac .PolicyRule{Verbs:[]string{"list", "watch"}, APIGroups:[]string{""}, Resources:[]string{"nodes"}, ResourceNames:[]string(nil), NonResourceURLs: []string(nil)}, rbac.PolicyRule{Verbs:[]string{"patch"}, APIGroups:[]string{""}, Resources:[]string{"nodes/status"}, ResourceNames:[] string(nil), NonResourceURLs:[]string(nil)}}, AggregationRule:(*rbac.AggregationRule)(nil)}),请检查清单文件。[]string{""}, Resources:[]string{"nodes"}, ResourceNames:[]string(nil), NonResourceURLs:[]string(nil)}, rbac.PolicyRule{Verbs:[]string{"patch "}, APIGroups:[]string{""}, Resources:[]string{"nodes/status"}, ResourceNames:[]string(nil), NonResourceURLs:[]string(nil)}}, AggregationRule:(* rbac.AggregationRule)(nil)}),请检查清单文件。[]string{""}, Resources:[]string{"nodes"}, ResourceNames:[]string(nil), NonResourceURLs:[]string(nil)}, rbac.PolicyRule{Verbs:[]string{"patch "}, APIGroups:[]string{""}, Resources:[]string{"nodes/status"}, ResourceNames:[]string(nil), NonResourceURLs:[]string(nil)}}, AggregationRule:(* rbac.AggregationRule)(nil)}),请检查清单文件。

因此,如果我想在特定节点上的其他 pod 之前执行我的 flannel yaml-manifest,我应该把它放在哪里?还是唯一的选择是执行kubectl apply -f flannel.yaml

0 投票
1 回答
8023 浏览

kubernetes - 了解 flannel 的 kubeadm init 命令

要使用 flannel 安装 kubernetes,首先需要运行:

问题是:

  • “pod-network-cidr”的目的是什么?
  • 这样的IP“10.244.0.0/16”是什么意思?
  • 法兰绒后来如何使用它?
0 投票
2 回答
3418 浏览

kubernetes - Kubernetes - 主节点中的 kube-system pod 在工作节点加入后不断重启

我已按照本教程和本教程以及教程进行操作,但过去 3 天我面临同样的问题。

我可以通过以下步骤正确设置主节点:

一切似乎都很好

然后,

在工作节点上:

输出看起来不错,如下所示:

但是一旦我运行这个命令,所有的地狱都会崩溃。这

开始显示所有 pod 都在一直在重新启动。状态在 Pending 和 Running 之间不断变化,有时一些 pod 甚至会消失并且可能具有 ContainerCreating 状态等。

我还尝试了第二个教程,使用法兰绒,并得到了完全相同的问题。

我的设置

我创建了两个新的虚拟机,在 VMware 上全新安装了 Ubuntu 17.10,每个虚拟机有 2 个处理器/2 核 6 GB 内存和 50 GB 硬盘。我的物理机是 i7-6700k,内存为 32gb。我在它们上面都安装了 kubeadm、kubelet 和 docker,然后按照上面提到的步骤进行操作。

我还尝试在 VMware 上的 NAT 和 Bridge 之间切换,但没有任何改变。

两个具有桥接网络的虚拟机的初始 IP 分别为 192.168.100.12 和 192.168.100.17。对于hostname -I大师:

对于hostname -I工作节点:

journalctl -xeu kubelet显示以下内容:

https://gist.github.com/saad749/9a771a3460bf88c274498b5bc4b7fd84

在尝试使用法兰绒(仍然是同样的问题)时,结果来自

https://gist.github.com/saad749/d24c453c8b4e663e9abf572a0fb38bf4

我错过了 kubeadm init 之前的任何步骤吗?我应该更改 IP 地址(更改为什么)?我应该查看任何特定的日志吗?有没有更全面的教程?所有问题都在工作节点上的 kubeadm 加入后开始,我可以在主节点或任何其他东西上部署 kubernetes,它工作正常。

更新:

即使应用了errordeveloper的建议,同样的问题仍然存在。

我将以下标志添加到 kubeadm init:

我将 kubeadm.conf 更新为以下内容并重新加载并重新启动: https ://gist.github.com/saad749/c7149c87ec3e75a40586f626cf04279a

并尝试更改集群 dns https://gist.github.com/saad749/5fa66bebc22841e58119333e75600e40

这是初始化主服务器后的日志:

主机名 -i 结果:

由于。。。导致的结果:

https://gist.github.com/saad749/8f460650182a04d0ddf3158a52761a9a

内部 IP 现在似乎是正确的。

从第二个节点加入后,会发生这种情况:

ifconfig -a 结果:

https://gist.github.com/saad749/63a5a52bd3246ff72477b2aca7d158d0

journalctl -xeu kubelet 结果

https://gist.github.com/saad749/8a60870b35f93df8565e66cb208aff32

有时,Pod 的 IP 显示为 192.168.100.12,这是非主第二节点的 IP。

我究竟做错了什么?

0 投票
2 回答
3369 浏览

kubernetes - 法兰绒豆荚中的 CrashLoopBackoff 错误在 kubernetes

在 kubernetes 中使用 flannel 作为 CNI 我正在尝试实现一个网络,以便在不同的 vagrant vm 上传播 pod 到 pod 的通信。我正在使用这个https://raw.githubusercontent.com/coreos/flannel/v0.9.0/Documentation/kube-flannel.yml来创建法兰绒豆荚。但是 kube-flannel pod 出现 CrashLoopBackOff 错误并且无法启动。

这是一个 pod 的日志

法兰绒吊舱进入 CrashLoopBackoff 的确切原因是什么,解决方案是什么?

0 投票
3 回答
3319 浏览

docker - 无法通过 ClusterIP (:443) 从节点/pod 访问 Kubernetes kube-apiserver。

我是 k8s 的新手,并试图在没有任何自动化的情况下从头开始在 Vagrant(Ubuntu 16.04)中运行 3 节点(master + 2 workers)集群(v1.9.6)。我相信对于像我这样的初学者来说,这是获得实践经验的正确方法。老实说,我已经为此花费了一个多星期,感到绝望。

我的问题是 coredns pod(与 kube-dns 相同)无法通过 ClusterIP 访问 kube-apiserver。它看起来像这样:

同时,我可以从任何机器和 pod 内部 ping 10.0.0.1(使用busybox 进行测试),但 curl 不起作用。

掌握

接口

iptables

路线

kube-apiserver (docker-compose)

kube-controller-manager (docker-compose)

kube-调度程序(docker-compose)

工人0

接口

iptables

路线

kubelet(系统服务)

kube-proxy(系统服务)

Worker1 的配置与 worker0 非常相似。

如果需要任何其他信息,请告诉我。

0 投票
1 回答
1255 浏览

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 网络,结果相同。

0 投票
1 回答
405 浏览

kubernetes - 无法创建 SubnetManager 错误 (flanneld) (kubernetes)

我通过执行以下命令安装了 etcd

下面是法兰绒的conf文件

当我执行以下命令时,我收到错误

错误是...