上云无忧 > 文档中心 > 百度智能云容器引擎服务 CCE 实践:集群网络说明及规划
容器引擎服务CCE
百度智能云容器引擎服务 CCE 实践:集群网络说明及规划

文档简介:
有效的规划集群的网络,可以适应业务发展的需要。 本文将介绍在百度智能云私有网络 VPC 环境下 CCE Kubernetes 集群里各种网络地址的作用,以及地址段该如何规划。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

概览

有效的规划集群的网络,可以适应业务发展的需要。 本文将介绍在百度智能云私有网络 VPC 环境下 CCE Kubernetes 集群里各种网络地址的作用,以及地址段该如何规划。

集群网络概念说明

集群网络包括:节点网络,容器网络和服务网络,概念分别如下。

节点网络

节点网络为集群内的主机分配 IP 地址的节点网络范围,创建集群时,需要选择节点网络的子网,更多节点网络和子网介绍参考 私有网络VPC子网。

容器网络

容器网络即容器实例 Pod 所在的网段,集群创建好后不支持修改此网段。

  • Kubernetes 中的最小管理单元 Pod,其在 kubernetes 网络模型中对应一个独立的 IP。
  • 容器网络为集群内的 Pod 分配 IP 地址的容器网络范围,百度云CCE提供了自定义的三大类私有网段 10、192 和 172 作为容器网络,并根据配置的单节点最大运行Pod的数量,自动计算该容器网络所允许的集群的最大节点数量。限制:因为 VPC 路由表的配额限制为200。

服务网络

Kubernetes 集群中的 service,在实际网络中并没有实体,是一个纯虚拟的IP网段。

  • 在节点上,kube-proxy 可以通过 iptables 或 ipvs将 service 地址转发到后端对应的 Pod。
  • Service 地址段不能与容器网络、节点网络重合。
  • Service 地址在 Kubernetes 集群内使用,不能在集群外使用。目前 Service 地址并没有暴露给用户选择,CCE 从 172.[16-31].0.0/16 中选取第一个与 容器网络 和 节点网络 不冲突的地址 作为Service 网络地址。

CCE集群网络架构图

CCE 集群网络架构图如下,包括节点网络,容器网络,服务网络。 

CCE容器网络冲突说明

CCE上配置的容器网络,会进行地址冲突检查,如有冲突,可以通过查看详情了解冲突的地址或路由,并可以选择使用建议的容器网络。如果建议使用的容器网络是空,则表明当前 VPC 无可用容器网络,建议新建 VPC 创建 CCE 集群。

选择查看详情: 

可以看到容器网络冲突详情,并可选择使用建议的容器网络。 

容器网络冲突检查有以下几点:

  1. 检查容器网络和节点网络不能冲突。
  2. 检查当前容器网络和当前集群所在的 VPC 内已创建的集群的容器网络不能冲突。
  3. 检查当前容器网络不能与当前集群所在的已存在的 VPC 路由冲突(先比较 src 地址是否是 0.0.0.0/0,如果是则继续比较 des 地址)。

CCE集群网络规划

为了保证容器间网络互通,CCE 创建集群时,会将每个容器网段都添加到路由表中,为了避免网段冲突,需要对 VPC 和容器网段进行合理的划分。

VPC 节点子网网络和容器网络不能冲突,比如,VPC 节点子网选择的是 172.16.0.0/16,容器网络也选择 172.16.0.0/16,则创建集群时会提示容器网络冲突,则建议使用推荐的容器网络。

CCE集群网络创建流程和示例

下面以一个完整的示例流程,来演示整个 VPC 内 CCE 集群的创建流程。

Step1: 创建VPC网络

  1. 登录 VPC 控制台
  2. 点击创建VPC。
  3. 选择VPC CIDR,点击确定。 在本示例中,为避免和容器网络冲突,选择192.168.0.0/16的VPC网络。 

Step2: VPC网络内创建子网

  1. VPC 创建好后,在该 VPC 下创建子网,并选择子网的 CIDR。
  2. 设备类型可以选择 通用型 或 NAT 专属型,如果有访问外网需求,参考 CCE 访问公网实践 

Step3: 创建CCE集群

  1. 登录 CCE 控制台。
  2. 点击创建集群。
  3. 选择刚刚创建的节点网络和节点子网。如有容器网络冲突,点击查看详情,使用推荐的容器网络。 

Step4: 验证节点IP

容器集群创建成功后,校验集群IP。

  1. 在 CCE 控制台 >> 集群列表,选择刚刚创建的集群。
  2. 进入集群详情后,点击左侧导航栏的 节点管理 >> Worker。
  3. 查看节点的内网IP,是否属于创建集群时,选择的节点子网。 如下图: 

Step5: 验证路由表

  1. 登录 VPC 控制台
  2. 选择刚创建的VPC。
  3. 点击左侧导航栏选择路由表。可以看到新增网段为 172.16.x.0/24 的路由信息,下一跳是 BCC 实例 ID。 如下图: 

Step6: 验证Pod IP

最终要验证 Pod 分配的 IP ,是否正确。

  1. 在 CCE 控制台 >> 集群列表,选择刚刚创建的集群。
  2. 进入集群详情后,点击左侧导航栏的 节点管理 >> Worker。
  3. 选择 VNC 远程登录集群节点。 
  4. 输入用户名和密码,执行:kubectl get pods -n kube-system -o wide 如下图:看到容器的 IP 分配的是 172.16.0.x,属于创建集群时选择的容器网络。 

以上的校验,表明成功地创建了一个 VPC 网络内的集群。

相似文档
  • CCE 支持用户使用开源工具velero对云上的kubernetes集群进行备份、恢复。用于集群误操作、集群故障、集群迁移等场景。 velero的作用: 灾备能力:提供备份、恢复k8s集群的能力。 迁移能力:提供拷贝集群资源到其他集群的能力。
  • 在一些场景中,用户需要让 VPC-CNI 模式集群中的节点或 Pod 具备访问公网的能力,如通过 yum install 等命令访问外部源地址下载安装软件、容器需要访问公网中的某些服务等等。 对于节点访问公网的操作,请参考 CCE-访问公网实践。
  • CCE 目前提供了 VPC网络 、 VPC-CNI 以及 VPC-Hybrid 三种网络模式,三种模式各有特点,选择合适的容器网络模式,可以适应业务发展的需要。 VPC网络 模式的原理与 kubernetes 原生的网络方案 kubenet 类似,配合百度云 VPC 的高速网络,能给集群高性能和稳定的容器网络体验,但支持的特性少。
  • 持续构建与发布是企业研发工作中必不可少的一个步骤,目前大多公司都采用 Jenkins 集群来搭建符合需求的 CI/CD 流程,Jenkins的持续发布流程可以跟Kubernetes集群更好的对接,更好的发挥它的部署优势,这篇文档可以指定用户把Jenkins发布流程跟CCE集群集成。
  • 您可以使用密钥管理服务(Key Management Service,简称:KMS)中创建的密钥加密 Kubernetes Secret 数据。本文主要介绍如何使用 KMS 服务对存储在 etcd 中的 Kubernetes Secret 数据进行加密。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部