zoukankan      html  css  js  c++  java
  • kubelet集群网络配置flannel(覆盖网络)

    kubernetes本身并不会对跨主机容器的网络进行设置,这需要额外的工具来实现。一些常用的开源工具主要包括flanne、OpenvSwitch、Weave、Calico等,这里面最常用的是flannel、OpenvSwitch和直接路由这3种配置。

    1)安装etcd

    由于flannel使用etcd作为数据库,所以需要预先安装etcd。可以参照上一篇。

    2)安装flannel

    需要在每台node上都安装flannel。flannel的下载地址

    将下载的二进制包进行解压,然后将flanneld和mk-docker-opts.sh复制到/usr/bin目录下,即可完成简单安装。

    3)配置flannel

    此处以systemd系统为例对flanneld服务进行配置。

    cat /usr/lib/systemd/system/flanneld.service
    [Unit]
    Description=flanneld overlay address etcd agent
    Documentation=https://github.com/coreos/flannel
    After=network.service
    Before=docker.service
    
    
    [Service]
    Type=notify
    EnvironmentFile=/etc/sysconfig/flanneld
    ExecStart=/usr/bin/flanneld --etcd-endpoints=${FLANNEL_ETCD} $FLANNEL_OPTIONS
    
    
    [Install]
    RequiredBy=docker.service
    WantedBy=multi-user.target
    

    编辑配置文件/etc/sysconfig/flanneld,并且设置etcd的地址。

    cat /etc/sysconfig/flanneld
    
    #flanneld configuration options
    
    #etcd url location. Point this to the server where etcd runs 
    
    FLANNEL_ETCD="http://192.168.142.161:2379,http://192.168.142.162:2379,http://192.168.142.163:2379"
    
    # etcd config key. this is the configuration key that flannel queries
    # for address range assignment
    FLANNEL_ETCD_KEY="/coreos.com/network"
    
    

    在启动flanneld服务之前,需要在etcd中添加一条网络配置记录,这个配置将用于flanneld分配给每个docker的虚拟IP地址段。

    etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }
    

    4)由于flanneld将覆盖docker0网桥,所以如果docker服务已经启动,则停止docker服务。

    5)启动flanneld服务

    systemctl restart flanneld
    

    6)设置docker0网桥的ip地址

    mk-docker-opts.sh -i
    source /run/flannel/subnet.env
    ifconfig docker0 ${FLANNEL_SUBNET}
    

    完成后确认网络接口docker0的IP地址属于flannel0的子网

    [root@kubernets-node2 ~]# ip add sh
    
    4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
        link/ether 02:42:22:3b:9f:2e brd ff:ff:ff:ff:ff:ff
        inet 10.1.60.1/24 brd 10.1.60.255 scope global docker0
           valid_lft forever preferred_lft forever
        inet6 fe80::42:22ff:fe3b:9f2e/64 scope link 
           valid_lft forever preferred_lft forever
    6: vethf488ee1@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP 
        link/ether 9a:38:bd:bb:88:c7 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet6 fe80::9838:bdff:febb:88c7/64 scope link 
    

    7)重新启动docker服务

    systemctl restart docker
  • 相关阅读:
    C语言I博客作业08
    博客作业6
    C语言I博客作业05
    C语言I博客作业03
    5.C#2.0之不完整类型(完成)
    4.C#2.0之迭代器(完成)
    3.C#2.0之匿名方法(完成)
    2.C#2.0之泛型(完成)
    1.C#2.0之2.0简介(完成)
    18.C#基础之不安全代码(完成)
  • 原文地址:https://www.cnblogs.com/skymyyang/p/9109070.html
Copyright © 2011-2022 走看看