You need to enable JavaScript to run this app.
导航

正确使用容器网络

最近更新时间2023.11.24 17:14:29

首次发布时间2023.11.24 16:41:05

本文主要描述使用容器服务时,关于容器网络(CNI)的注意事项、操作配置建议和使用方法最佳实践。

避免在 VPC-CNI 网络环境中使用 HostPort

HostPort 是 Kubernetes 默认提供的网络功能,可以让 Pod 通过其所在 Node(节点)的特定端口来暴露服务。HostPort 虽然可以为不同网络平面中 Node 与 Pod 的网络插件实现提供便捷,但会引入与 Node 的源端口产生冲突,引发偶发的网络异常问题。对于容器服务中 VPC-CNI 容器网络模型集群,Pod 与 Node 均为 VPC 网络平面的网元,访问 Node 与访问 Pod 链路的差异很小,HostPort 不再是一个很好的选择,若您有快捷访问 Pod 容器相关需求,可为 Pod 绑定独立 EIP。

说明

邀测·申请试用】:为 Pod 绑定独立 EIP 功能目前处于 邀测 阶段,如需使用,请提交申请。

避免修改 NodePort 的默认端口范围

容器服务中默认的 NodePort 端口与系统配置net.ipv4.ip_local_port_range错开,保证了 NodePort 服务所用端口不会和运行在节点上的进程所使用的端口冲突,同时系统组件的端口也避开了 NodePort 端口的。擅自修改 NodePort 端口范围,可能会因端口冲突而导致网络异常,请避免做此操作。

避免在 VPC-CNI 网络环境中为节点配置额外的弹性网卡

为节点配置额外的弹性网卡(ENI)会占用 VPC-CNI 网络模型集群中节点的 ENI 配额,因此会导致节点的 Pod 密度减少,乃至可能导致新增 Pod 失败,请谨慎操作。节点的 Pod 密度计算方法,请参见 节点的 Pod 调度密度计算说明

关注 VPC 相关资源的配额和可用数量

VPC-CNI 网络模型使用私有网络(VPC)资源为 Kubernetes 集群创建网络,VPC 资源的配额直接决定了 Kubernetes 集群的规模上限。在创建集群时,请提前做好集群依赖的 VPC 资源规划,避免日后集群规模增长时因 VPC 资源不足导致业务受影响。

建议在使用集群的过程中时刻关注 VPC 相关资源的水位,及时扩容,避免因资源配额用尽导致 Pod 网络创建失败。VPC 相关资源扩容,请参见 VPC 约束限制

避免操作 VPC-CNI 网络模型使用的弹性网卡

VPC-CNI 网络模型在节点上使用 VPC 的弹性网卡(ENI)为 Pod 创建网络。此类 ENI 的生命周期和配置由 VPC-CNI 网络插件负责,请勿对其进行任何操作,包括但不限于:

  • 通过手动或自动化 DHCP(常见于 NetworkManager)为 VPC-CNI 网络插件管理的 ENI 配置私网 IP 地址。
    使用自定义配置的私网 IP 地址会导致 Pod 网络出现故障。如有相关故障或更多问题,可 提交工单 获取技术支持。
  • 删除此类 ENI。
    该操作会导致使用被删除 ENI 的 Pod 网络故障。

谨慎对 Kubernetes 资源进行强制删除操作

强制删除 Kubernetes 资源(例如安装各类组件时自动创建的 CRD、Pod 等资源)可能导致资源状态异常,进而导致资源冲突、无效等问题。如有强制删除 Kubernetes 资源需求,请 提交工单 获取技术支持,切勿自行操作。

请勿直接修改 vpc-cni 组件配置

vpc-cni 组件为 VPC-CNI 网络模型集群中的系统关键组件。组件配置由容器服务后台托管,因此请勿直接修改 vpc-cni 的配置文件(ConfigMap)对组件进行配置变更。如有需求,请 提交工单 获取技术支持。