有效的规划集群的网络,可以适应业务发展的需要。 本文将介绍在百度智能云私有网络 VPC 环境下 CCE Kubernetes 集群里各种网络地址的作用,以及地址段该如何规划。
集群网络包括:节点网络,容器网络和服务网络,概念分别如下。
节点网络为集群内的主机分配 IP 地址的节点网络范围,创建集群时,需要选择节点网络的子网,更多节点网络和子网介绍参考 私有网络VPC子网。
容器网络即容器实例 Pod 所在的网段,集群创建好后不支持修改此网段。
容器网络为集群内的 Pod 分配 IP 地址的容器网络范围,百度云CCE提供了自定义的三大类私有网段 10、192 和 172 作为容器网络,并根据配置的单节点最大运行Pod的数量,自动计算该容器网络所允许的集群的最大节点数量。限制:因为 VPC 路由表的配额限制为200。
Kubernetes 集群中的 service,在实际网络中并没有实体,是一个纯虚拟的IP网段。
CCE 集群网络架构图如下,包括节点网络,容器网络,服务网络。
CCE上配置的容器网络,会进行地址冲突检查,如有冲突,可以通过查看详情了解冲突的地址或路由,并可以选择使用建议的容器网络。如果建议使用的容器网络是空,则表明当前 VPC 无可用容器网络,建议新建 VPC 创建 CCE 集群。
选择查看详情:
可以看到容器网络冲突详情,并可选择使用建议的容器网络。
容器网络冲突检查有以下几点:
为了保证容器间网络互通,CCE 创建集群时,会将每个容器网段都添加到路由表中,为了避免网段冲突,需要对 VPC 和容器网段进行合理的划分。
VPC 节点子网网络和容器网络不能冲突,比如,VPC 节点子网选择的是 172.16.0.0/16,容器网络也选择 172.16.0.0/16,则创建集群时会提示容器网络冲突,则建议使用推荐的容器网络。
下面以一个完整的示例流程,来演示整个 VPC 内 CCE 集群的创建流程。 ### Step1: 创建VPC网络
选择VPC CIDR,点击确定。 在本示例中,为避免和容器网络冲突,选择192.168.0.0/16的VPC网络。
设备类型可以选择 通用型 或 NAT 专属型,如果有访问外网需求,参考 CCE 访问公网实践
容器集群创建成功后,校验集群IP。
最终要验证 Pod 分配的 IP ,是否正确。
kubectl get pods -n kube-system -o wide
如下图:看到容器的 IP 分配的是 172.16.0.x,属于创建集群时选择的容器网络。
以上的校验,表明成功地创建了一个 VPC 网络内的集群。