五、设置基本的路由网络 #
在绝大多数情况下,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。