Kubernetes 网络

简介

本文单介绍kubernetes常用的几重cni插件,并做对比。各个cni插件的详细介绍参见相关文档。

常用cni插件

CNI插件 开发者 简介
Flannel 3层的voerlay网络,支持VXLAN,host-gw模式
Calico Tigera 基于BGP的纯三层的网络方案

各个cni插件对比

功能 Flannel Calico Weave

cni配置

kubelet使用cni的流程如下: 1. cni的默认配置文件为: /etc/cni/net.d 目录下的*.conflist 文件 例如:使用bridge的网络插件配置

{
    "cniVersion": "0.3.1"
    "name": "my-br"
    "plugins": [
        "type": "bridge",
        "bridge": "cni0",
        "isDefaultGateway": true,
        "forceAddress": false,
        "ipMasq": true,
        "hairpinMode": true,
        "ipam": {
            "type": "host-local",
            "subnet": "10.0.138.0/27",
            "routes": [
            {
                "dst": "0.0.0.0/0"
            }]
        }
    }]
}
  1. cni的默认插件存放在:/opt/cni/bin目录下;

  2. kubelet在使用插件时主要有3个参数配置:

    --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin

结论