在ENS边缘场景中,如果ACK Edge集群使用Terway Edge插件,当虚拟交换机的IP不足或者需要扩展Pod网段时,您可以通过新增Pod虚拟交换机来增加IP地址资源供ACK Edge集群使用。
前提条件
- 使用ENS作为边缘节点。 
新增虚拟交换机
如果发现Pod虚拟交换机的IP资源不足,您可以通过以下方式新增虚拟交换机以供ACK Edge集群使用。
- 在ENS对应的网络内创建交换机。 - 登录ENS控制台,在左侧导航栏选择网络管理 > 交换机。 
- 在交换机页面,单击创建交换机,填写相关内容后,单击创建。 - 节点:选择ENS节点。 - 网络:选择ENS对应的网络。 - 名称:新增交换机的名称。 - IPv4网段:ENS的网络所在的网段。 
 
- 将新增的虚拟交换机添加到Terway Edge的ConfigMap中。 - kubectl edit cm privateip-config -n kube-system- 示例输出如下,您可以在 - vswitches下配置新增的虚拟交换机,可配置多个。其中- n-xxx表示ENS中的网络ID,- ["vsw-xxx", "vsw-xxxx"]表示在该网络中的交换机ID,可配置多个,请勿删除已有的交换机ID。- apiVersion: v1 kind: ConfigMap metadata: annotations: helm.sh/hook: pre-install name: privateip-config namespace: kube-system data: privateip_conf: | { "vswitches": { "n-xxx": ["vsw-xxx", "vsw-xxxx"], "n-xxx": ["vsw-xxx", "vsw-xxxx"] }, "vswitch_selection_policy": "most" }说明- Pod的IP地址默认从预先购买的ENI所在虚拟交换机中分配,新增的Pod虚拟交换机可以与ENS实例以及ENI实例位于不同的交换机下。 
如何判断Pod虚拟交换机的IP资源不足?
在Terway Edge网络场景下,如果您发现Pod创建失败,且状态显示为ContainerCreating,您可以通过以下方式确认虚拟交换机IP资源是否不足。
- 查看Pod所在节点的ENS节点。 - kubectl get pod -o wide- 预期输出: - NAME READY STATUS RESTARTS AGE IP NODE cube-1 0/1 ContainerCreating 0 41s <none> node-1 cube-2 0/1 ContainerCreating 0 41s <none> node-1
- 查看ENS节点资源的相关信息。 - kubectl describe ensnodes node-1- 预期输出: - Name: node-1 Namespace: Labels: name=node-1 API Version: network.alibabacloud.com/v1beta1 .... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning AllocIPFailed 1m ens-multi-ip-node [SDKError] API: AssignPrivateIpAddresses, ErrorCode: InvalidVSwitchId.IpNotEnough, RequestId: xxxxxxx, Message: Don't have enough private IPs in this switch. Warning AllocIPFailed 1m ens-multi-ip-node [SDKError] API: AssignPrivateIpAddresses, ErrorCode: InvalidVSwitchId.IpNotEnough, RequestId: xxxxxxx, Message: Don't have enough private IPs in this switch.- 若输出Events信息中包含 - ErrorCode:InvalidVSwitchId.IpNotEnough,则表明Pod虚拟交换机IP资源不足。
相关文档
该文章对您有帮助吗?