欢迎访问网易云社区,了解更多网易技术产品运营经验. 本文章根据网易云资深解决方案架构师 王必成在云原生用户大会上的分享整理. 今天我将分享个人对于网络方案的理解,以及网易云在交付 Kubernetes 场景时的一些网络实践. 本文分为两部分: 第一部分:常见容器网络方案: 第二部分:网易云基于 VPC 深度集成的 Kubernetes 网络实践. 常见容器网络方案 常见容器网络方案分类   常见的容器网络方案可以从协议栈层级.穿越形态.隔离方式这三种形式进行划分. 协议栈层级: 第一种:协议栈二…
摘抄某博客 1.   Flannel Flannel是为kubernetes设计的一个非常简洁的多节点三层网络方案,解决不同host上的容器互联问题,原理是为每个host分配一个subnet,容器从此subnet中分配IP,这些IP可以在host间路由,容器间无需NAT和port  mapping就可以跨主机通信,每个subnet都是从一个更大的IP池中划分的,flannel会在每个host上面运行一个守护进程flanneld,其职责就是从大池子中分配subnet,为了各个主机间共享信息,fla…
VIP PaaS在接近两年时间里,基于kubernetes主要经历四次网络方案的变迁: 1. kubernetes + flannel 2. 基于Docker libnetwork的网络定制 3. kubernetes + contiv + kube-haproxy 4. 应用容器IP固定 先简单说一下背景,PaaS平台的应用管理包括应用配置管理,应用的运行态管理.一个应用的运行态对应kubernetes的一个Replication Controller(后面使用RC简称)和一个Service,…
参考文档: Difficulties with traditional overlay networks:https://www.projectcalico.org/learn/ Get Start(v2.6.x):https://docs.projectcalico.org/v2.6/getting-started/docker/ Calico组件(v2.6.x):https://docs.projectcalico.org/v2.6/reference/architecture/ 配置cal…
近日,灵雀云发布了基于OVN的Kubernetes网络组件Kube-OVN,并正式将其在Github上开源.Kube-OVN提供了大量目前Kubernetes不具备的网络功能,并在原有基础上进行增强.通过将OpenStack领域成熟的网络功能平移到Kubernetes,来应对更加复杂的基础环境和应用合规性要求.目前Kube-OVN项目代码已经在Github 上开源,项目地址为:https://github.com/alauda/kube-ovn.项目使用宽松的Apache 2.0 协议,欢迎更多…
本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 cgroups 限制容器使用的资源 (5)Docker 网络 (6)若干企业生产环境中的容器网络方案 Docker 在早期只有单机上的网络解决方案,在 1.19 版本引入了原生的 overlay 网络解决方案,但是它的性能损耗较大,可能无法适应一些生产环…
网络模型有了,如何实现呢? 为了保证网络方案的标准化.扩展性和灵活性,Kubernetes 采用了 Container Networking Interface(CNI)规范. CNI 是由 CoreOS 提出的容器网络规范,它使用了插件(Plugin)模型创建容器的网络栈. CNI 的优点是支持多种容器 runtime,不仅仅是 Docker.CNI 的插件模型支持不同组织和公司开发的第三方插件,这对运维人员来说很有吸引力,可以灵活选择适合的网络方案. 目前已有多种支持 Kubernetes…
自研CNI IPAM插件 解决K8s功能问题 首先,在功能方面,Kubernetes 网络模型由于IP不固定,无法对IP资源进行精细管控,无法使用基于IP的监控和基于IP的安全策略,此外,一些IP发现的服务部署十分困难,给运维人员增加了很大的工作难度.例如由于IP不固定,令很多采用IP固定来做的传统监控和审计机制全部失效.此外,很多软件是对MAC地址进行授权,IP地址不固定无法购买授权,IP固定的需求在一定场景下客观存在. 为了解决这一问题,灵雀云把IP当做重要资源,进行单独管理.灵雀云自研的C…
一.Kubernetes + Flannel Kubernetes的网络模型假定了所有Pod都在一个可以直接连通的扁平的网络空间中,这在GCE(Google Compute Engine)里面是现成的网络模型,Kubernetes假定这个网络已经存在.而在私有云里搭建Kubernetes集群,就不能假定这个网络已经存在了.我们需要自己实现这个网络假设,将不同节点上的Docker容器之间的互相访问先打通,然后运行Kubernetes. Flannel是CoreOS团队针对Kubernetes设计的…
此文已由作者黄扬授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在早先的k8s版本中,kubelet代码里提供了networkPlugin,networkPlugin是一组接口,实现了pod的网络配置.解除.获取,当时kubelet的代码中有个一个docker_manager,负责容器的创建和销毁,亦会负责容器网络的操作.而如今我们可以看到基本上kubelet的启动参数中,networkPlugin的值都会设置为cni. cni插件的使用方式 使用CNI插件时,需要做三…