• 云计算_K8s网络CNI_KubeOVN


    K8s概念

    VPC 专有网络VPC(Virtual Private Cloud
    CRI (container runtime interface) :CRI Client,CRI Server,OCI Runtime。
          :CRI Client 端有个实现就是 kubelet,CRI Server 端有个实现叫 Containerd,OCI Runtime 有好多实现其中有个叫 runc
    CRD 全称是 Custom Resource Definition
    CDI (containerized-data-importer) 是kubernetes的持久存储管理插件
    CNI (ContainerNetwork Interface
    CSI ,Container Storage Interface
    PV全称叫做 PersistentVolume  PVC StorageClass
    kubernetes的节点需要对os、docker、etcd、k8s、cni和网络插件的安装和配置
    
    标准化建设:  主要包括设备、系统、软件等三类对象资源 
        资源标准化  流程标准化   数据标准化
    

    k8s网络模式

    让集群中的各种 pod 之间能自由通信  IP-per-Pod模型
     1. pod ip 地址的管理
     2. 同一节点上的 pod 之间互相通信
     3. 不同节点上的 pod 之间互相通信
    插件
      flannel,这个是利用的静态路由表配置或者 vxlan 实现的网络通信。
      calico,是通过 BGP 协议实现了动态路由。
      Weave,以及 OVN 之类的各种各样的网络插件
    概念
     Net Namespace 	
     Veth 设备对  veth1 veth2     veth-pair 连接不同的命名空间  以太网设备
     iptables  Netfilter  网络栈处理数据包过程对数据包的操作
     routed 路由	 
    

    Docker 支持的网络模式

     --net=bridge
     --net=host
     --net=container:
     --net=none
       未考虑多主机互联解决方案
    

    OpenStack

     VM 创建时指定 IP,VM 生命周期内地址保持固定
     VM 创建时随机地址分配,VM 生命周期内地址保持固定
     VM 热迁移过程中业务网卡保持地址固定
    OpenStack社区,虚拟网络已经有了长足的发展,方案成熟,OVS 基本已经成为网络虚拟化的标准
       OVS 以及 OVS 的控制器OVN
       OVN 和 OVS 的关系就好比 Kubernetes 和 Docker 的关系
       在OpenStack领域内成熟的网络功能往 Kubernetes 平移,也就诞生了灵雀云的开源项目 Kube-OVN    
     VM 创建时指定 IP
        对于由管理员主动给 VM 分配地址,并在启动前确定地址的情况,
         只需要在 KubeVirt 的VirtualMachine 的template中的
     	    annotations增加 ovn.kubernetes.io/ip_address 来指定需要分配的地址
     metadata:
       annotations:
         ovn.kubernetes.io/ip_address: 10.16.0.15
    

    kubevirt

    用于创建虚拟机	
     kubevirt是Red Hat开源的以容器方式运行虚拟机的项目,是基于kubernetes运行,
     利用k8s CRD为增加资源类型VirtualMachineInstance(VMI)
     
     kubevirt以CRD的形式将VM管理接口接入到kubernetes中,通过一个pod去使用libvirtd管理VM的方式,实现pod与VM的一一对应
     
     KubeVirt 社区的用户在 Kube-OVN 中贡献了大量针对云原生虚拟化进行强化的功能,
     包括固定地址,多租户网络和 SR-IOV 以及 OVS-DPDK 等功能
      KubeVirt 上的虚拟化管理可以通过控制网络所属的 VPC 和 Subnet 来实现不同的 VM 落在不同的租户网络,从而实现整个虚拟化方案的多租户
      kubevirt可以使用容器的image registry去创建虚拟机并提供VM生命周期管理。
      结构:virtctl virt-api virt-controller virt-handler  virt-launcher
      虚拟机镜像  虚拟机生命周期管理  容器和虚拟机互通
    

    Kube-OVN

    安装:需要两个 yaml 就可以部署一个完整的 Kube-OVN
    使用:annotation 即可对网络进行配置
     Kube-OVN提供了大量目前Kubernetes不具备的网络功能
     Kube-OVN 支持两种网关:分布式网关和集中式网关	
     Kube-OVN The Most Advanced Kubernetes Network Fabric
     在Kube-OVN的网络拓扑里,不同 Namespace 对应着不同的子网。子网是其中最为重要的概念,
       之后的内置负载均衡器,防火墙,路由策略以及DNS的网络功能都是和子网绑定的
    

    网络

     CNI 负责基础容器网络,它本身只是个接口标准
      kube-proxy 集群内的服务发现网络需要依赖 kube-proxy,而 kube-proxy 又有 iptables 和 ipvs 两种实现
      集群内的 DNS 需要依赖额外组件kube-dns 或coredns
      网络策略的 NetworkPolicy 本身只是一个标准接口
       ingress 只是一个标准接口	    
     网络策略:子网划分、vlan 绑定、nat、qos、固定 IP
  • 相关阅读:
    tableviewCell折叠状态1
    iOS中--NSArray调用方法详解 (李洪强)
    NSNumber的使用
    Fedora13下编译busybox-1.15.0出现can not find lcrypt错误
    【独立开发人员er Cocos2d-x实战 013】Cocos2dx 网络编程实战之星座运势
    JAVA序列化的作用
    我买网B轮融资成功,五周年豪掷千万回馈会员
    一步步教你搭建TinyOS2.1.2开发环境
    POJ2947 DAZE [Gauss]
    慢慢理解RESTful架构
  • 原文地址:https://www.cnblogs.com/ytwang/p/16377577.html
Copyright © 2020-2023  润新知