使用基于策略的网络扩展Kubernetes Deployments
今天的文章是由Nuage Networks 的产品管理总监Harmeet Sahni书写,内容是关于他们在Kubernetes贡献和Policy-Based Networking的见解。
尽管距离Kubernetes 1.0发布仅仅只有18个月,我们已经看到Kubernetes领先容器业务流程平台部署的分布式应用程序。周边充满活力的开源社区蓬勃发展是其最大原因之一。大量的Kubernetes贡献者来自不同的背景意味着我们和用户社区确信给一个开放的平台投资。 像谷歌这样的公司(容器引擎),红帽子(OpenShift),和CoreOS(Tectonic)正在开发自己的基于Kubernetes的商业产品。因为它会带来更多的标准化,并提供给用户,所以这是一件好事。
K8s应用网络系统要求
把应用程序部署在Kubernetes的公司,面临的一个最大问题是如何部署和合理安排大规模的容器。他们意识到底层基础设施,包括网络和存储,需要支持分布式应用程序。由于网络基础设施的灵活性和敏捷性可以匹配应用程序本身,软件定义网络(SDN)是一个非常适合这样场景的应用。这些应用程序的网络要求包括:
- 网络自动化
- 分布式负载平衡和服务发现
- 分布式安全细粒度的策略
- QoS策略
- 可扩展实时监控
- 混合应用环境与服务横跨容器,VMS和裸机服务器
- 服务插入(如防火墙)
- 支持私有和公共云部署
K8s网络系统
Kubernetes通过APIs提供了一组核心平台服务。该平台可以通过扩展API,插件和标签几个方面实现可扩展性。这使得各种各样的基于Kubernetes集成方法和工具被开发出来,。Kubernetes承认每个部署的网络将是独一无二的。Kubernetes选择了做网络系统插件而不是试图使核心系统来处理所有这些用例。
基于Nuage Networks提供基于SDN平台的可扩展策略。该平台由一个网络策略引擎管理,抽象出与配置系统相关的复杂性。平台拥有一个带有非常丰富的路由功能和实现水平扩展的独立的SDN控制器。Nuage采用开源的Open vSwitch(OVS)与用户空间的一些增强功能的OVS数据层。就像Kubernetes,Nuage一直信奉开放作为其平台的核心宗旨。Nuage提供开放的API,允许用户实现他们的网络和集成网络服务如防火墙、负载均衡器、IPAM工具等。Nuage和Kubernetes以及其他平台一样是支持多种云平台OpenStack,VMware和容器的平台。
Nuage平台实现了能够生成VXLAN封装的Kubernates网络插件,提供Kubernates Pods和非Kubernates Pods(虚拟机服务器和裸机服务器)之间基于策略的无缝网络链接。每个Pod都有一个特定命名空间的网络IP,并且没有在 kubernetes节点上绑定。
云应用的建立使用了微服务,控制微服务之间通信的是基础要求。必须指出,这些网络策略需要控制即将到来的外部网络和服务的通信也是至关重要的。Nuage策略的抽象模使得型应用程序声明细粒度入口/出口策略更加容易。Kubernates使用Kubernates的扩展API实现了beta版的网络策略。Nuage实现了这一网络策略API解决各种各样的策略用例如下:
- Kubernetes 命名空间隔离
- 跨命名空间策略
- 相同或者不同命名空间的Pods的分组策略
- Kubernates Pods/命名空间和外部的网络/服务之间的策略
策略是实现的可扩展性是用户考虑的一个关键问题。一些网络设置需要创建访问控制列表(ACL)条目告诉Pods它们如何相互作用。在大多数情况下,这最终导致了一个不规则堆积的ACL条目。Nuage平台可以避免这个问题,快速分配策略应用于整个Pods组。Nuage平台实现这些策略使用基于OVS的完全分布式防火墙。
监控Kubernetes Pods之间的通信流的功能对于开发和运营团队非常有用。Nuage平台的实时分析引擎能够可视化和安全的监控Kubernetes应用。用户可以得到的Pods之间的流量可视化展示,使用户很容易看到网络策略是如何生效。用户还可以得到丰富的流量和策略统计集。此外,用户可以根据策略事件阈值设置要触发的警报。
总结
虽然在一年前我们开始从事Kubernetes一体化工作,但是感觉我们才刚刚开始。我们一直认为这是一个真正开放的社区,我们希望成为其中的一个组成部分。在GitHub上,你可以找到关于我们的Kubernetes集成的更多内容。
本文转自中文社区-使用基于策略的网络扩展Kubernetes Deployments
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
FaaS, Fission and K8S
云计算时代出现了大量XaaS形式的概念,从IaaS、PaaS、SaaS到容器云引领的CaaS,再到火热的微服务架构,以及现在越来越多被谈起的Serverless和FaaS,我们正在经历一个技术飞速变革的时代。 什么是FaaS Serverless的概念刚刚出现在HackerNews时并不为大众所接受。后来随着微服务和事件 驱动架构的发展才慢慢引起关注。Serverless并不是说没有服务器参与,它通过将复杂的服务器架构透明化,使开发者专注于“要做什么”,从而强调了减少开发者对服务器等计算资源的关注、工作粒度从服务器切换到任务的思想。2006年第一个支持“随用随付”的代码执行平台Zimki问世。2014年亚马逊AWS推出了Lambda成为最主要的无服务架构的代表。接着Google、IBM和Microsoft也纷纷推出了各自支持Serverless的平台。 微服务架构近年来是一个非常火爆的话题,大大小小的公司都开始逐步分拆原来的单体应用,试着转换到由各个模块服务组合成大型的复杂应用。Serverless可以看作是比微服务架构更细粒度的架构模式,即FaaS。Lambda也是FaaS的典型代表...
- 下一篇
使用YAML创建一个 Kubernetes Depolyment
在之前的文章中,我们已经提到过如何使用Kubernetes去创建资源。到目前为止,我们一直仅仅通过命令行去 执行,但是这里有一个更加简单有效的方式去创建资源:通过使用YAML创建一个配置文件。在这篇文章,我们将会关注YAML的工作方式以及如何使用YAML创建一个Kubernetes Pod,然后使用Kubernetes创建一个Depolyment。当然您如果是新手可以先了解Kubernetes上运行你的第一个容器。 YAML 基础 如果你正在做的事与很多软件领域相关,那么将很难不涉及到YAML,特别是Kubernetes,SDN,和OpenStack。YAML,它代表着另一种标志语言,或者YAML不是标志语言(取决于你问谁)而是特定配置类型基于人类可读的文本格式的信息,例如,在本文中,我们将会分开说说明YAML定义创建Pod和使用Kubernetes创建一个Depolyment。 使用YAML用于k8s的定义将给你一些好处,包括: 便捷性:你将不再需要添加大量的参数到命令行中执行命令 可维护性:YAML文件可以通过源头控制,可以跟踪每次的操作 灵活性:通过YAML你将可以创建比命令行更...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合Redis,开启缓存,提高访问速度
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- CentOS8安装Docker,最新的服务器搭配容器使用