原文地址

flannel 从 ETCD 中读取配置。

默认情况下,flannel 从 /coreos.com/network/config 中读取配置,可以使用 --etcd-prefix 覆盖。

通过 etcdctl 工具设置 ETCD 中的值。

配置值是一个带有以下键的 JSON 字典:

  • Network (字符串):CIDR 格式的 IPv4 网络,用于整个 flannel 网络,这是唯一的必填字段。
  • SubnetLen(整数):分配给每个主机的子网的大小。默认为 24(即 /24),除非 Network 被配置为比 /24 小,在这种情况下,它比 Network 小 1。
  • SubnetMin(字符串):分配的子网对应的 IP 地址段的起始值。默认为 Network 的第一个子网。
  • SubnetMax(字符串):分配的子网对应的 IP 地址段的结束值。默认为 Network 的最后一个子网。
  • Backend (字典 dictionary):要使用的后端类型以及该后端的特定配置。默认为 udp 后端。

子网租赁的有效时间为 24 小时。除非使用 --subnet-lease-renew-margin-margin 选项设置了不同的更新值,租约将在其到期 1 小时内续订。

JSON 配置示例

以下配置说明了使用 udp 后端的大多数选项:

{
"Network": "10.0.0.0/8",
"SubnetLen": 20,
"SubnetMin": "10.10.0.0",
"SubnetMax": "10.99.0.0",
"Backend": {
"Type": "udp",
"Port": 7890
}
}

重要的命令行选项

--public-ip="" # 可被其他节点访问以进行主机间通信的 IP。默认为用于通信的接口的IP
--etcd-endpoints=http://127.0.0.1:4001 # 以逗号分隔的 etcd 端点列表
--etcd-prefix=/coreos.com/network # etcd 前缀
--etcd-keyfile="" # 用于 etcd 通信的 SSL 密钥文件
--etcd-certfile="" # 用于 etcd 通信的 SSL 证书文件
--etcd-cafile="" # 用于 etcd 通信的 SSL Certificate Authority 文件
--kube-subnet-mgr # 联系 Kubernetes API 进行子网分配而不是 etcd
--iface="" # 用于主机间通信的接口(IP 或域名)。默认为机器上默认路由的接口。这可以指定多次,以便按顺序检查每个选项。返回找到的第一个匹配项。=
--iface-regex="" # 正则表达式,匹配第一个要使用的主机间通信的接口(IP 或域名)。如果未指定,则默认为机器上默认路由的接口。这可以指定多次来按顺序检查每个正则表达式。返回找到的第一个匹配项。该选项被 iface 选项取代,只有在 iface 选项中没有指定任何选项时才会使用该选项
--iptables-resync=5 # 以秒为单位重新同步 iptables 规则。默认为 5 秒,如果发生大量的 iptables 锁争用,可以尝试增大这个值
--subnet-file=/run/flannel/subnet.env # 用于写入 env 变量(子网和 MTU 值)的文件名
--subnet-lease-renew-margin=60 # 子网租约续约提前量,单位分支
--ip-masq=false # 为发往 flannel 网络外部的流量设置 IP 伪装。Flannel 假定 NAT POSTROUTING 链中的默认策略是 ACCEPT
-v=0 # V 日志的日志级别。设置为 1 以查看与数据路径相关的消息
--healthz-ip="0.0.0.0" # healthz 服务器要侦听的 IP 地址(默认为“0.0.0.0”)
--healthz-port=0 # healthz 服务器侦听的端口(0 表示禁用)
--version # 打印版本并退出

MTU 由 flannel 自动计算和设置。然后它会在 subnet.env 中报告该值。这个值不能改变。

环境变量

上面列出的命令行选项也可以通过环境变量指定。例如 --etcd-endpoints=http://10.0.0.2:2379 等同于 FLANNELD_ETCD_ENDPOINTS=http://10.0.0.2:2379 环境变量。任何命令行选项都可以变成一个环境变量,方法是用 FLANNELD_ 作为前缀,并去掉前导破折号,转换为大写字母并将所有其他破折号替换为下划线。

健康检查

Flannel 提供了一个负责健康检查的 http 端点 healthz。目前,当 flannel 运行时,这个端点将一直返回 http 状态 ok(即 200)。该功能默认是禁用的。将 healthz-port 设置为非零值将启用 flannel 的 healthz 服务器。

Flannel - 配置的更多相关文章

  1. Flannel配置详解

    1.简介 Flannel是一种基于overlay网络的跨主机容器网络解决方案,也就是将TCP数据包封装在另一种网络包里面进行路由转发和通信, Flannel是CoreOS开发,专门用于docker多机 ...

  2. Kubernetes: 集群网络配置 - flannel

    参考: [ Kubernetes 权威指南 ] Kubernetes 集群搭建可以参考 [ Kubernetes : 多节点 k8s 集群实践 ] 在多个 Node 组成的 Kubernetes 集群 ...

  3. k8s的flannel网络插件配置

    flannel的网络插件配置 Kubernetes网络通信需要解决以下问题:            (1)容器间通信:同一个Pod内的多个容器间的通信,lo            (2)Pod通信:P ...

  4. kubernetes 配置网络插件 flannel

    概述 在学习docker时知道docker有四种常用的网络模型 bridge:桥接式网络 joined:联盟式网络,共享使用另外一个容器的网络名称空间 opened:容器直接共享使用宿主机的网络名称空 ...

  5. Kubernetes 学习18配置网络插件flannel

    一.概述 1.我们在学习docker时知道docker有四种常用的网络模型 a.bridge:桥接式网络 b.joined:联盟式网络,共享使用另外一个容器的网络名称空间 b.opened:容器直接共 ...

  6. Docker 网络 Flannel

    flannel 安装 sudo yum install kernel-headers golang gccyum install flannel flannel 配置 在etcd中设置变量 etcdc ...

  7. Docker网络解决方案 - Flannel部署记录

    Docker跨主机容器间网络通信实现的工具有Pipework.Flannel.Weave.Open vSwitch(虚拟交换机).Calico, 其中Pipework.Weave.Flannel,三者 ...

  8. flannel

    Docker跨主机容器间网络通信实现的工具有Pipework.Flannel.Weave.Open vSwitch(虚拟交换机).Calico实现跨主机容器间的通信.其中Pipework.Weave. ...

  9. ubuntu物理机上搭建Kubernetes集群 -- minion 配置

    1. flannel配置 下载二进制文件 https://github.com/coreos/flannel/releases 版本:flannel-v0.7.0-linux-amd64.tar.gz ...

随机推荐

  1. Codeforces 1163D Mysterious Code(AC自动机+DP)

    用 AC自动机 来做有点想不到,捞一手就是学一手. 设 dp[ i ][ j ] 表示字符串 c 中的第 i 位到字典树上节点 j 的最大值是多少, word[ j ] 表示在节点 j 下对答案修改的 ...

  2. R语言基础篇——数据对象

    1.基本数据类型(numeric,logical,character,NA,double,complex,integer) 2.日期变量 常用函数 Sys.Date()-返回系统当前的日期,Sys.t ...

  3. C#中ComboBox动态绑定赋值

    http://www.crifan.com/csharp_combobox_data_dynamic_binding/ C#中,已有一个List,想要动态的,绑定到ComboBox中. [解决过程] ...

  4. spark复习笔记(3):使用spark实现单词统计

    wordcount是spark入门级的demo,不难但是很有趣.接下来我用命令行.scala.Java和python这三种语言来实现单词统计. 一.使用命令行实现单词的统计 1.首先touch一个a. ...

  5. 【推荐系统】知乎live入门2.细节补充

    参考链接 [推荐系统]知乎live入门 目录 1. 综述 2. 召回 3. 用户画像与标签 4. 特征工程 5. 点击率预估 6. 评估 7. 数据标注 8. 推荐 ================= ...

  6. tac 反向显示文件内容

    1.命令功能 tac是cat的反向拼写,功能是反向显示文件内容. 2.语法格式 tac  option  file 3.使用范例 [root@localhost chu]# cat test.txt ...

  7. pandas数据读取(DataFrame & Series)

    1.pandas数据的读取 pandas需要先读取表格类型的数据,然后进行分析 数据说明 说明 pandas读取方法 csv.tsv.txt 用逗号分割.tab分割的纯文本文件 pd.read_csv ...

  8. 通过反射获取方法的参数名称(JDK8以上支持)

    方法的参数名,在很多时候我们是需要反射得到的.但是在java8之前,代码编译为class文件后,方法参数的类型是固定的,但参数名称却丢失了,这和动态语言严重依赖参数名称形成了鲜明对比.(java是静态 ...

  9. LOJ2540「PKUWC2018」随机算法

    又是一道被咕了很久的题 貌似从WC2019之前咕到了现在 我们用f[i][s]表示现在最大独立集的大小为i 不可选集合为s 然后转移O(n)枚举加进来的点就比较简单啦 这个的复杂度是O(2^n*n^2 ...

  10. 详解JVM内存模型与JVM参数详细配置

    对于大多数应用来说,Java 堆(Java Heap)是Java 虚拟机所管理的内存中最大的一块.Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建. JVM内存结构 由上图可以清楚的看到 ...