• Kubernetes CNI 发展趋势- iptables_ipvs_bpf_ovs


    前情提要

    为了极致性能我们换个防火墙吧。BPF from BSD firewalld ,把它移植到 Linux 中来!

    BPF

    1. BPF program 将数据发送给 K8s service; 做负载均衡决策并将数据包发送给目的 pod 节点
    2. BPF program 程序将 DNAT 转换成 Pod 的IP
    3. Pod 看到客户端真正的 IP
    4. Pod 做出响应; BPF 反向 DNAT
    5. 如果网络准许,数据包直接返回。否则将通过 Ingress Node (ingress controller Pod 所在服务器)

    iptables or ipvs

    1. kube-proxy DNAT + SNAT 用自己的 IP 替换源 IP ,用 Pod IP 替换掉目的 IP
    2. 数据包转发到目标 Pod
    3. Pod 将 Ingress Node 视为源,并作出响应
    4. 源 / 目的地址在 Ingress Node 替换为客户端地址(目的) ,服务地址(Ingress Node)

    ipvs 对比 iptables 的优势:

    • ipvs 基于散列表,复杂度 O(1),iptables 基于链表,复杂度 O(n)
    • ipvs 支持多种负载均衡调度算法;iptables 只有由 statistic 模块的 DNAT 支持概率轮询,

    原文地址

    Openvswitch

    这是大家所遗忘的部分,当 IPv6 全面铺开的时候,每一个 pod 可能都会有一个 IPv6 的地址,未来可期。

  • 相关阅读:
    Hadoop2.x环境搭建
    HDFS序列化
    Hadoop2.x介绍
    eclipse(1)----ubuntu下的安装与配置
    hive与hbase
    mysql----启动报错
    序列化+protobuff+redis
    爬虫学习笔记(2)--创建scrapy项目&&css选择器
    日常随笔
    spark学习(2)--hadoop安装、配置
  • 原文地址:https://www.cnblogs.com/shangmo/p/14821389.html
Copyright © 2020-2023  润新知