在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资源不足。
相关文档
该文章对您有帮助吗?
- 本页导读 (1)
- 前提条件
- 新增虚拟交换机
- 如何判断Pod虚拟交换机的IP资源不足?
- 相关文档