为弹性网卡(ENI)配置白名单

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

在Terway网络模式下,节点上的弹性网卡(ENI)由Terway进行管理,您无需操作。但如果在某些特殊场景下,您需要自行管理部分弹性网卡,请为Terway上的弹性网卡配置白名单,以避免两者管理的弹性网卡之间产生冲突。配置白名单后,仅符合标签过滤条件的弹性网卡会被Terway管理。本文介绍如何为弹性网卡(ENI)配置白名单。

索引

前提条件

  • 已创建Kubernetes托管版集群,且集群的网络插件为Terway。更多信息,请参见创建ACK托管集群

  • 请确保弹性网卡(ENI)上已经配置了预期的标签,否则此网卡将被排除。

警告

此文档包含高危操作,请在充分理解、验证后使用。

使用限制

Terway需为v1.5.5版本。关于如何升级组件版本,请参见管理组件

操作步骤

  1. 执行以下命令,修改Terway配置文件。

    kubectl edit cm -n kube-system eni-config
  2. eni_conf配置中增加以下内容。

     "eni_tag_filter":  { "creator": "terway" }

    "eni_tag_filter"表示网络接口的标签过滤器,{ "creator": "terway" }则是具体的标签过滤条件,表示只有由Terway创建的网络接口才会被匹配。

    示例如下:

     eni_conf: |
        {
          "eni_tag_filter":  { "creator": "terway" },
          "ip_stack": "ipv4",
          "vswitch_selection_policy": "ordered"
         }
    重要

    请确保弹性网卡(ENI)上已经配置了预期的标签,否则此网卡将被排除。

    关于如何修改弹性网卡标签,请参考修改弹性网卡标签

    关于如何在Terway创建网卡时,为网卡设置标签,请参考自定义Terway配置参数

  3. 执行以下命令,重启Terway使配置生效。

    kubectl delete pod -nkube-system -l app=terway-eniip

    预期输出:

    pod "terway-eniip-XXX" deleted
  4. 确认配置已生效。

    1. 执行以下命令,查看terway-eniip的状态。

      kubectl get pods -n kube-system -l app=terway-eniip

      预期输出:

      NAME                 READY   STATUS    RESTARTS   AGE
      terway-eniip-XXX   2/2     Running   0          19h
    2. 执行以下命令,查看Terway的配置信息。

      kubectl logs -nkube-system terway-eniip-XXX
      或者
      kubectl logs -nkube-system terway-eniip-XXX -c terway-init

      如果输出结果中包含以下类似内容,表示Terway的配置已生效。

      # ENITagFilter表示网络接口标签过滤器,creator:terway表示只有由Terway创建的网络接口才会被匹配。
      ENITagFilter:map[creator:terway]
  5. 添加新节点或重新加入已有节点生效。

    1. 在Terway 1.10版本开始,新建集群采用不同的资源管理方式

    2. 执行以下命令,查看Terway的配置信息。

      kubectl get cm -nkube-system eni-config -oyaml| grep ipam_type
       "ipam_type": "crd",
    3. 如果结果包含crd,则需要重新添加节点。若无结果,则无需重新添加节点。

    4. 关于如何操作节点请参考节点与节点池