五、设置基本的路由网络

五、设置基本的路由网络 #

在绝大多数情况下,Kubernetes 网络依赖于网络插件来实现,例如常见的 flannel、calico 和 weave 等插件。

为了演示基础的 Pod 网络,我们这里暂时不使用这些经典插件,而是通过手动设置路由来实现。网络插件的安装将在后续章节中进行补充说明。

如图所示,每个节点(Node)都会分配一个独立的 Pod 网段。在 Master 和 Node 节点上,我们将手动添加到 Pod 网段的路由配置。


flowchart LR
    A[master
    primary: 10.192.56.10]
  subgraph NODES
    direction TB
    B[node01
    primary: 10.192.56.11
    Pod CIDR: 10.244.1.0/24]
    C[node02
    primary: 10.192.56.12
    Pod CIDR: 10.244.2.0/24]
  end 
    A <---> B & C

    B <---> C

添加 CNI 的配置 #

创建 CNI 的配置文件夹

# 两个节点的命令一样
mkdir /etc/cni/net.d/
# 两个节点的命令一样
mkdir /etc/cni/net.d/

创建子网的配置文件 /etc/cni/net.d/10-bridge.conf。分别写下面的配置。两个 node 上的配置稍有区别:

  • node01 上分配了 10.244.1.0/24
  • node02 上分配了 10.244.2.0/24

两个节点的配置不一样

{
  "cniVersion": "1.0.0",
  "name": "bridge-network",
  "type": "bridge",
  "bridge": "cni0",
  "isGateway": true,
  "ipMasq": true,
  "ipam": {
    "type": "host-local",
    "ranges": [
      [
        {
          "subnet": "10.244.1.0/24"
        }
      ]
    ],
    "routes": [
      {
        "dst": "0.0.0.0/0"
      }
    ]
  }
}

两个节点的配置不一样

{
  "cniVersion": "1.0.0",
  "name": "bridge-network",
  "type": "bridge",
  "bridge": "cni0",
  "isGateway": true,
  "ipMasq": true,
  "ipam": {
    "type": "host-local",
    "ranges": [
      [
        {
          "subnet": "10.244.2.0/24"
        }
      ]
    ],
    "routes": [
      {
        "dst": "0.0.0.0/0"
      }
    ]
  }
}

创建回环配置 /etc/cni/net.d/99-loopback.conf,两个 node 上的配置一样。

{
  "cniVersion": "1.1.0",
  "name": "loopback",
  "type": "loopback"
}

添加路由 #

最后,在三台机器上分别设置路由。

ip route add 10.244.1.0/24 via 192.168.56.11
ip route add 10.244.2.0/24 via 192.168.56.12
ip route add 10.244.2.0/24 via 192.168.56.12
ip route add 10.244.1.0/24 via 192.168.56.11

接下来我们就可以运行 Pod

comments powered by Disqus