更新时间:2024-10-29 GMT+08:00

网络

简介

通过阅读本章节用户可以了解:

  • 如何为弹性CCI的pod配置默认使用的指定dns服务器。
  • CCE集群pod与CCI集群中pod通过service互通的使用指导。
  • 弹性CCI侧pod通过service发布。

约束与限制

  • 使用共享VPC的CCE集群不支持开启“网络互通”功能。
  • 使用CCE集群中的Bursting插件对接CCI 2.0服务,支持配置独享型ELB的Ingress和Service。Bursting插件1.5.5以下版本不支持配置ELB类型的Service。
  • 当前网络互通能力依赖sidecar容器的启动,因此在初始化容器中暂不支持使用网络互通能力,且业务容器如果使用preStart、postStart功能阻塞后续容器的启动会导致网络互通能力异常。
  • 跨CCE和CCI实例Service网络互通只支持集群内访问(ClusterIP)类型。不支持在init-container中访问CCE侧ClusterIP service。
  • 跨CCE和CCI实例,在对接LoadBalancer类型的Service或Ingress时:
    • 禁止指定健康检查端口,在CCE集群下,由于CCI的容器与CCE的容器在ELB注册的后端使用端口不一致,指定健康检查端口会导致部分后端健康检查异常。
    • 跨集群使用Service对接同一个ELB的监听器时,需确认健康检查方式,避免服务访问异常。
    • 跨CCE和CCI实例,在对接共享型LoadBalancer类型的Service时,需要放通node安全组下100.125.0.0/16网段的容器端口。

配置默认使用的指定dns服务器

操作场景

在某些场景中,用户想要弹性CCI的Pod可以使用指定的dns服务器地址。bursting插件提供配置指定的dns服务器地址的能力,无需在每个Pod上都配置dnsConfig,从而降低用户网络运维成本。

操作步骤

  1. 登录CCE集群节点,编辑bursting负载的yaml。
    kubectl edit deploy cceaddon-virtual-kubelet-virtual-kubelet -nkube-system
  1. 启动参数中增加--cluster-dns=x.x.x.x参数,配置为dns服务器地址。
  2. 保存配置修改,等待virtual-kubelet负载重启。

  3. 验证方式。
    通过exec进入弹性到CCI运行中的容器内,查看/etc/resolv.conf中首选nameserver是否为cluster-dns配置的地址。
    表1 使用场景约束限制

    使用场景

    约束限制

    修改配置前存在弹性CCI的pod

    • 修改配置后新创建弹性CCI的pod生效。
    • 修改配置前的弹性的pod需要重建之后才生效。

    cluster-dns配置上限

    • k8s dnsConfig最多只支持配置3个nameservers。
    • 保证cluster-dns配置的nameserver数量与Pod dnsConfig中配置的nameserver数量之和不超过3个。

CCE集群pod与CCI集群中pod通过service互通的使用指导

  1. 安装插件,勾选”网络互通“功能。

    安装成功后租户账号下会自动创建负载均衡器,可以通过网络控制台进行查看。

  2. 创建弹性CCI侧pod,并配置service发布。
    • 为了方便验证,镜像选择暴露容器80端口的nginx。
    • 为工作负载配置service。推荐自动创建新的负载均衡器,以避免和插件自动创建的elb产生冲突。

  3. 通过CCE集群控制台,获取该负载的访问方式。
  4. 创建CCE侧pod,并配置service发布。方法请参考步骤2,不选择弹性CCI标签。
  5. 验证网络互访。

    创建弹性CCI的工作负载,镜像选择含有curl命令的镜像,如centos。

    通过CCI侧进入该容器,执行图中命令,观测CCI访问CCE service网络打通。

    图1 访问CCI pod的service
    图2 访问CCE pod的service
  6. 同理创建CCE侧pod,镜像选择含有curl命令的镜像,如centos。执行相同的命令。观测CCE访问CCI service网络打通。