• Kube-OVN-安装配置参数选项


    1. 内置网络配置

    Kube-OVN 在安装时会配置两个内置子网

    1. default 子网,作为 Pod 分配 IP 使用的默认子网,默认 CIDR 为 10.16.0.0/16,网关为 10.16.0.1
    2. join 子网,作为 Node 和 Pod 之间进行网络通信的特殊子网, 默认 CIDR 为 100.64.0.0/16,网关为 100.64.0.1

    在安装时可以通过安装脚本内的配置进行更改:

    POD_CIDR="10.16.0.0/16"
    POD_GATEWAY="10.16.0.1"
    JOIN_CIDR="100.64.0.0/16"
    EXCLUDE_IPS=""
    
    • 1
    • 2
    • 3
    • 4

    EXCLUDE_IP 可设置 POD_CIDR 不进行分配的地址范围,格式为:192.168.10.20..192.168.10.30

    注意 :

    Overlay 情况下这两个网络不能和已有的主机网络和 Service CIDR 冲突
    
    • 1

    2. service网段配置

    安装脚本中可以通过修改:SVC_CIDR="10.96.0.0/12"

    在安装后通过修改 kube-ovn-controller Deployment 的参数:

    args:
    - --service-cluster-ip-range=10.96.0.0/12
    
    • 1
    • 2

    3. Overlay网卡选择

    在节点存在多块网卡的情况下,Kube-OVN 默认会选择 Kubernetes Node IP 对应的网卡作为容器间跨节点通信的网卡并建立对应的隧道。

    如果需要选择其他的网卡建立容器隧道,可以在安装脚本中修改:

    IFACE=eth1
    
    • 1

    该选项支持以逗号所分隔正则表达式,例如ens[a-z0-9]*,eth[a-z0-9]*

    安装后也可通过修改 kube-ovn-cni DaemonSet 的参数进行调整:

    args:
    - --iface=eth1
    
    • 1
    • 2

    如果每台机器的网卡名均不同,且没有固定规律,可以使用节点 annotation ovn.kubernetes.io/tunnel_interface 进行每个节点的逐一配置,拥有该 annotation 节点会覆盖 iface 的配置,优先使用 annotation。

    kubectl annotate node no1 ovn.kubernetes.io/tunnel_interface=ethx
    
    • 1

    4. MTU设置

    Kube-OVN 在创建容器网卡时会根据选择网卡的 MTU 进行容器网卡的 MTU 调整, 默认情况下 Overlay 子网下 Pod 网卡 MTU 为主机网卡 MTU - 100,Underlay 子网下,Pod 网卡和主机网卡有相同 MTU。

    如果需要调整 Overlay 子网下 MTU 的大小,可以修改 kube-ovn-cni DaemonSet 的参数:

    args:
    - --mtu=1333
    
    • 1
    • 2

    5. LB开启设置

    Kube-OVN 使用 OVN 中的 L2 LB 来实现 Service 转发,在 Overlay 场景中,用户可以选择使用 kube-proxy 来完成 Service 流量转发, 在这种情况下可以关闭 Kube-OVN 的 LB 功能以达到控制面和数据面更好的性能。

    可以在安装脚本中进行配置:ENABLE_LB=false

    或者在安装后通过更改 kube-ovn-controller Deployment 的参数进行配置:

    args:
    - --enable-lb=false
    
    • 1
    • 2

    LB 的功能在默认安装中为开启。

    6.NetworkPolicy开启设置

    Kube-OVN 使用 OVN 中的 ACL 来实现 NetworkPolicy,用户可以选择关闭 NetworkPolicy 功能 或者使用 Cilium Chain 的方式利用 eBPF 实现 NetworkPolicy, 在这种情况下可以关闭 Kube-OVN 的 NetworkPolicy 功能以达到控制面和数据面更好的性能。

    该功能可以在安装脚本中进行配置:

    ENABLE_NP=false
    
    • 1

    或者在安装后通过更改 kube-ovn-controller Deployment 的参数进行配置:

    args:
    ---enable-np=false
    
    • 1
    • 2

    NetworkPolicy 的能力在默认安装中为开启。

    7. EIP 和 SNAT 开启设置

    默认网络下如果无需使用 EIP 和 SNAT 的能力,可以选择关闭相关功能,以减少 kube-ovn-controller 在创建和更新 网络时的检查消耗,在大规模集群环境下可以提升处理速度。

    该功能可在安装脚本中进行配置:

    ENABLE_EIP_SNAT=false
    
    • 1

    或者在安装后通过更改 kube-ovn-controller Deployment 的参数进行配置:

    args:
    ---enable-eip-snat=false
    
    • 1
    • 2

    EIP 和 SNAT 的能力在默认安装中为开启。该功能的相关使用和其他可配参数请参考EIP 和 SNAT 配置

    8. Kubevirt VM 固定地址开启设置

    针对 Kubevirt 创建的 VM 实例,kube-ovn-controller 可以按照类似 StatefulSet Pod 的方式进行 IP 地址分配和管理。 以达到 VM 实例在生命周期内启停,升级,迁移等操作过程中地址固定不变,更符虚拟化合用户的实际使用体验。

    该功能在 1.10.6 后默认开启,若要关闭此功能,需要在 kube-ovn-controller Deployment 的启动命令中设置如下参数:

    args:
    ---keep-vm-ip=false
    
    • 1
    • 2

    9. CNI 配置相关设置

    Kube-OVN 默认会在 /opt/cni/bin 目录下安装 CNI 执行文件,在 /etc/cni/net.d 目录下安装 CNI 配置文件 01-kube-ovn.conflist。 如果需要更改安装位置和 CNI 配置文件的优先级,可以通过安装脚本的下列参数进行调整:

    CNI_CONF_DIR="/etc/cni/net.d"
    CNI_BIN_DIR="/opt/cni/bin"
    CNI_CONFIG_PRIORITY="01"
    
    • 1
    • 2
    • 3

    或者在安装后更改 kube-ovn-cni DaemonSet 的 Volume 挂载和启动参数:

    volumes:
    -name:cni-conf
    hostPath:
    path:"/etc/cni/net.d"
    -name:cni-bin
    hostPath:
    path:"/opt/cni/bin"
    ...
    args:
    ---cni-conf-name=01-kube-ovn.conflist
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    10. 隧道类型设置

    Kube-OVN 默认 Overlay 的封装模式为 Geneve,如果想更换为 Vxlan 或 STT,可以通过安装脚本的下列参数进行调整:

    TUNNEL_TYPE="vxlan"
    
    • 1

    或者在安装后更改 ovs-ovn DaemonSet 的环境变量:

    env:
    -name:TUNNEL_TYPE
    value:"vxlan"
    
    • 1
    • 2
    • 3

    如果需要使用 STT 隧道需要额外编译 ovs 的内核模块,请参考性能调优

    不同协议在实际使用中的区别请参考隧道协议说明

    11. SSL 设置

    OVN DB 的 API 接口支持 SSL 加密来保证连接安全,如要开启可调整安装脚本中的如下参数:

    ENABLE_SSL=true
    
    • 1

    SSL 功能默认安装下为关闭模式。

  • 相关阅读:
    springboot视频网站毕业设计-附源码240925
    2022NEC全美经济挑战赛报名时间已出
    中国互联网综合实力100强:猿辅导第39
    JavaEE-文件IO操作
    【sfu】追踪ms如何提供flv服务
    在Docker里安装FastDFS分布式文件系统详细步骤
    人工智能基础 | 机器学习介绍(一)
    Nginx 反向代理
    c语言指针
    SpringBoot3整合Knife4j4.x版本(Swagger3、OpenApi3)
  • 原文地址:https://blog.csdn.net/qq_21127151/article/details/128072747