• k8s之配置flanneld网络


    Flannel是Overlay网络的一种,也是将源数据包封装在另一种网络包里面进行路由转发和通信,目前已经支持UDP、VXLAN、AWS VPC和GCE路由等数据转发方式。

    Flannel通过给每台宿主机分配一个子网的方式为容器提供虚拟网络,它基于Linux TUN/TAP,使用UDP封装IP包来创建overlay网络,并借助etcd维护网络的分配情况。

    去官网下载相应二进制包:https://github.com/coreos/flannel/releases

    解压之后得到两个文件:flanneld和mk-docker-opts.sh

    将其复制到flanel的专属目录中。这里我们统一放在/opt/kubernetes/bin下面。

    通过以下文件来配置flannel的配置文件

    cat <<EOF >/opt/kubernetes/cfg/flanneld

    FLANNEL_OPTIONS="--etcd-endpoints=${ETCD_ENDPOINTS}
    -etcd-cafile=/opt/kubernetes/ssl/ca.pem
    -etcd-certfile=/opt/kubernetes/ssl/server.pem
    -etcd-keyfile=/opt/kubernetes/ssl/server-key.pem"

    EOF

    注意:${ETCD_ENDPOINTS} 是etcd各节点路径,比如:“https://192.168.10.63:2379,https://192.168.10.64:2379,https://192.168.10.65:2379"。这里可以手动填写上去。

    确定无误之后再用以下文件来配置service启动文件。

    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

    确保证书完整情况下便可启动flannel了。

    启动完flannel之后还要配置docker使用flannel网络。

    [root@k8s-node01-10 ~]# 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
    # the default is not to use systemd for cgroups because the delegate issues still
    # exists and systemd currently does not support the cgroup feature set required
    # for containers run by docker
    #ExecStart=/usr/bin/dockerd   (这是原来的,将其注释或者删除)
    EnvironmentFile=/run/flannel/subnet.env
    ExecStart=/usr/bin/dockerd $DOCKER_NETWORK_OPTIONS    (这两行是替换上面哪一行的,有了这两行之后docker便可以使用flannel网络来)
    ExecReload=/bin/kill -s HUP $MAINPID
    # Having non-zero Limit*s causes performance problems due to accounting overhead
    # in the kernel. We recommend using cgroups to do container-local accounting.
    LimitNOFILE=infinity
    LimitNPROC=infinity
    LimitCORE=infinity
    # Uncomment TasksMax if your systemd version supports it.
    # Only systemd 226 and above support this version.
    #TasksMax=infinity
    TimeoutStartSec=0
    # set delegate yes so that systemd does not reset the cgroups of docker containers
    Delegate=yes
    # kill only the docker process, not all processes in the cgroup
    KillMode=process
    # restart the docker process if it exits prematurely
    Restart=on-failure
    StartLimitBurst=3
    StartLimitInterval=60s

    [Install]
    WantedBy=multi-user.target

    重启一下docker即可使用flannel网络。

  • 相关阅读:
    07word转换pdf
    高德纳《计算机程序设计艺术》(The Art of Computer Programming)的作者
    DbVisualizer 8 解决中文乱码问题 (20120310 20:23)
    IT has never been easier or harder
    el表达式和s:property的区别
    df 和 du 命令详解
    dbvisualizer 8.0 破解(free>personal)
    ping 中的TTL查看操作系统
    netstat 监控TCP/IP网络
    ls l 命令
  • 原文地址:https://www.cnblogs.com/xingyunfashi/p/10598347.html
Copyright © 2020-2023  润新知