#master执行将内网通信地址写入etcd中,确保flannel能与etcd通信
#添加
/opt/etcd/bin/etcdctl --ca-file=/opt/etcd/ssl/ca.pem --cert-file=/opt/etcd/ssl/server.pem --key-file=/opt/etcd/ssl/server-key.pem --endpoints="https://192.168.1.63:2379,https://192.168.1.65:2379,https://192.168.1.66:2379" set /coreos.com/network/config '{ "Network": "172.17.0.0/16", "Backend": {"Type":"vxlan"}}'
查看
/opt/etcd/bin/etcdctl --ca-file=/opt/etcd/ssl/ca.pem --cert-file=/opt/etcd/ssl/server.pem --key-file=/opt/etcd/ssl/server-key.pem --endpoints="https://192.168.1.63:2379,https://192.168.1.65:2379,https://192.168.1.66:2379" get /coreos.com/network/config node节点
mkdir /opt/kubernetes/{bin,cfg,ssl} -p
tar zxvf flannel-v0.10.0-linux-amd64.tar.gz
mv flanneld mk-docker-opts.sh /opt/kubernetes/bin #执行脚本
./flannel https://192.168.1.63:2379,https://192.168.1.65:2379,https://192.168.1.66:2379 #脚本内容
root@k8s-master: /opt ::
$ cat flannel.sh
#!/bin/bash
#定义传参https://192.168.1.63:2379,https://192.168.1.65:2379,https://192.168.1.66:2379
ETCD_ENDPOINTS=${:-"http://127.0.0.1:2379"} #flannel配置文件
cat <<EOF >/opt/kubernetes/cfg/flanneld FLANNEL_OPTIONS="--etcd-endpoints=${ETCD_ENDPOINTS} \
-etcd-cafile=/opt/etcd/ssl/ca.pem \
-etcd-certfile=/opt/etcd/ssl/server.pem \
-etcd-keyfile=/opt/etcd/ssl/server-key.pem" EOF
#systemctl管理flannel模块
cat <<EOF >/usr/lib/systemd/system/flanneld.service
[Unit]
Description=Flanneld overlay address etcd agent
After=network-online.target network.target
Before=docker.service [Service]
Type=notify
EnvironmentFile=/opt/kubernetes/cfg/flanneld
ExecStart=/opt/kubernetes/bin/flanneld --ip-masq \$FLANNEL_OPTIONS
ExecStartPost=/opt/kubernetes/bin/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/subnet.env
Restart=on-failure [Install]
WantedBy=multi-user.target EOF
###docker配置文件
cat <<EOF >/usr/lib/systemd/system/docker.service [Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target [Service]
Type=notify
#########主要是加了这两行,docker是否引用flannel网络
EnvironmentFile=/run/flannel/subnet.env
ExecStart=/usr/bin/dockerd \$DOCKER_NETWORK_OPTIONS
#########
ExecReload=/bin/kill -s HUP \$MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=
StartLimitInterval=60s [Install]
WantedBy=multi-user.target EOF systemctl daemon-reload
systemctl enable flanneld
systemctl restart flanneld
systemctl restart docker root@k8s-master: /opt ::
$
#ifconfig查看docker0的ip地址是与flannel.1的ip在一个网段
root@k8s-node01: /opt/kubernetes/bin ::
$ ifconfig docker0
docker0: flags=<UP,BROADCAST,MULTICAST> mtu
inet 172.17.94.1 netmask 255.255.255.0 broadcast 172.17.94.255
inet6 fe80:::83ff:fe96:f053 prefixlen scopeid 0x20<link>
ether ::::f0: txqueuelen (Ethernet)
RX packets bytes (392.0 B)
RX errors dropped overruns frame
TX packets bytes (1.1 KiB)
TX errors dropped overruns carrier collisions root@k8s-node01: /opt/kubernetes/bin ::
$ ifconfig flannel.
flannel.: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 172.17.94.0 netmask 255.255.255.255 broadcast 0.0.0.0
inet6 fe80::5c8d:26ff:fe95:d0e8 prefixlen scopeid 0x20<link>
ether 5e:8d:::d0:e8 txqueuelen (Ethernet)
RX packets bytes (336.0 B)
RX errors dropped overruns frame
TX packets bytes (336.0 B)
TX errors dropped overruns carrier collisions root@k8s-node01: /opt/kubernetes/bin ::
$ #查看docker是否引用flannel的ip
root@k8s-node01: /opt/kubernetes/bin ::
$ ps -ef|grep dockerd
root : ? :: /usr/bin/dockerd --bip=172.17.94.1/ --ip-masq=false --mtu=
root : pts/ :: grep --color=auto dockerd
root@k8s-node01: /opt/kubernetes/bin ::
$ cat /usr/lib/systemd/system/docker.service [Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target [Service]
Type=notify
EnvironmentFile=/run/flannel/subnet.env
ExecStart=/usr/bin/dockerd $DOCKER_NETWORK_OPTIONS
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=
StartLimitInterval=60s [Install]
WantedBy=multi-user.target root@k8s-node01: /opt/kubernetes/bin ::
$ cat /run/flannel/subnet.env
DOCKER_OPT_BIP="--bip=172.17.94.1/24"
DOCKER_OPT_IPMASQ="--ip-masq=false"
DOCKER_OPT_MTU="--mtu=1450"
DOCKER_NETWORK_OPTIONS=" --bip=172.17.94.1/24 --ip-masq=false --mtu=1450"
root@k8s-node01: /opt/kubernetes/bin ::
$
完成

k8s集群———flannel网络的更多相关文章

  1. docker 集群 flannel网络构建

    先保证集群状态是正常的 集群管理 kubelet 在创建pod 时会先下载一个pause 镜像,这个镜像用于容器基础网络管理非常重要: 每个node 节点都要执行该操作: iptables -P FO ...

  2. 大规模 K8s 集群管理经验分享 · 上篇

    11 月 23 日,Erda 与 OSCHINA 社区联手发起了[高手问答第 271 期 -- 聊聊大规模 K8s 集群管理],目前问答活动已持续一周,由 Erda SRE 团队负责人骆冰利为大家解答 ...

  3. 三十二、kubernetes集群的网络实现

    Kubernetes集群的网络实现 CNI介绍及集群网络选型 容器网络接口(Container Network Interface),实现kubernetes集群的Pod网络通信及管理.包括: CNI ...

  4. k8s集群Canal的网络控制 原

    1 简介 直接上干货 public class DispatcherServlet extends HttpServlet { private Properties contextConfigProp ...

  5. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...

  6. kubernetes系列03—kubeadm安装部署K8S集群

    本文收录在容器技术学习系列文章总目录 1.kubernetes安装介绍 1.1 K8S架构图 1.2 K8S搭建安装示意图 1.3 安装kubernetes方法 1.3.1 方法1:使用kubeadm ...

  7. k8s重要概念及部署k8s集群(一)--技术流ken

    重要概念 1. cluster cluster是 计算.存储和网络资源的集合,k8s利用这些资源运行各种基于容器的应用. 2.master master是cluster的大脑,他的主要职责是调度,即决 ...

  8. K8S集群 NOT READY的解决办法 1.13 错误信息:cni config uninitialized

    今天给同事 一个k8s 集群 出现not ready了 花了 40min 才搞定 这里记录一下 避免下载 再遇到了 不清楚. 错误现象:untime network not ready: Networ ...

  9. k8s学习笔记之二:使用kubeadm安装k8s集群

    一.集群环境信息及安装前准备 部署前操作(集群内所有主机): .关闭防火墙,关闭selinux(生产环境按需关闭或打开) .同步服务器时间,选择公网ntpd服务器或者自建ntpd服务器 .关闭swap ...

随机推荐

  1. Class.forName(“com.mysql.jdbc.Driver”)

    传统的使用jdbc来访问数据库的流程为: Class.forName(“com.mysql.jdbc.Driver”); String url = “jdbc:mysql://localhost:33 ...

  2. @atcoder - CODE FESTIVAL 2017 Final - J@ Tree MST

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定 N 个点,第 i 点有一个点权 Xi,再给定一棵边带权的树 ...

  3. jQuery 练习 dom

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. laravel5.6 QQ 第三方登录

    https://socialiteproviders.github.io/providers/qq.html 1. Installation // This assumes that you have ...

  5. shell 并发执行任务

    #!/bin/bash # ref: https://blog.csdn.net/spch2008/article/details/51433353 token(){ pid=$ # 判断是否有传入p ...

  6. Java 内存模型及GC原理 (转)

      来源:http://blog.csdn.net/ithomer/article/details/6252552 一个优秀Java程序员,必须了解Java内存模型.GC工作原理,以及如何优化GC的性 ...

  7. 割点(tarjan)

    对于根来说,如果它有超过1棵子树,那么它是一个割点 对于非叶结点来说,如果它的某一个儿子没有回边能到达高于它的点,那么它是一个割点 叶节点不是割点 //洛谷3388 #include<algor ...

  8. javascript 元素的大小

    1.偏移量 元素的可见大小由其高度.宽度决定,包括所有内边距.滚动条和边框大小(不包含外边距).通过下列4个属性可以获取元素的偏移量: offsetHeight: offsetWidth: offse ...

  9. ThinkPHP URL 路由简介

    简单的说,URL 路由就是允许你在一定规则下定制你需要的 URL 样子,以达到美化 URL ,提高用户体验,也有益于搜索引擎收录的目的. 例子 原本的 URL 为: http://www.5idev. ...

  10. H3C NAT ALG