配置 Pod 网络路由

每个 Pod 都会从所在 Node 的 Pod CIDR 中分配一个 IP 地址。由于网络 路由 还没有配置,跨节点的 Pod 之间还无法通信。

本部分将为每个 worker 节点创建一条路由,将匹配 Pod CIDR 的网络请求路由到 Node 的内网 IP 地址上。

也可以选择 其他方法 来实现 Kubernetes 网络模型。

路由表

本节将为创建 kubernetes-the-hard-way VPC 路由收集必要的信息。

列出每个 worker 节点的内部 IP 地址和 Pod CIDR 范围:

  1. for instance in worker-0 worker-1 worker-2; do
  2. gcloud compute instances describe ${instance} \
  3. --format 'value[separator=" "](networkInterfaces[0].networkIP,metadata.items[0].value)'
  4. done

输出为

  1. 10.240.0.20 10.200.0.0/24
  2. 10.240.0.21 10.200.1.0/24
  3. 10.240.0.22 10.200.2.0/24

路由

为每个 worker 节点创建网络路由:

  1. for i in 0 1 2; do
  2. gcloud compute routes create kubernetes-route-10-200-${i}-0-24 \
  3. --network kubernetes-the-hard-way \
  4. --next-hop-address 10.240.0.2${i} \
  5. --destination-range 10.200.${i}.0/24
  6. done

列出 kubernetes-the-hard-way VPC 网络的路由表:

  1. gcloud compute routes list --filter "network: kubernetes-the-hard-way"

输出为

  1. NAME NETWORK DEST_RANGE NEXT_HOP PRIORITY
  2. default-route-081879136902de56 kubernetes-the-hard-way 10.240.0.0/24 kubernetes-the-hard-way 1000
  3. default-route-55199a5aa126d7aa kubernetes-the-hard-way 0.0.0.0/0 default-internet-gateway 1000
  4. kubernetes-route-10-200-0-0-24 kubernetes-the-hard-way 10.200.0.0/24 10.240.0.20 1000
  5. kubernetes-route-10-200-1-0-24 kubernetes-the-hard-way 10.200.1.0/24 10.240.0.21 1000
  6. kubernetes-route-10-200-2-0-24 kubernetes-the-hard-way 10.200.2.0/24 10.240.0.22 1000

下一步:部署 DNS 扩展