Kubernetes之上到底该构建什么?这些或许能给你启发
云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
Kubernetes已经成为各种规模企业在生产环境事实上的容器编排平台,在各种应用中设置Kubernetes都是基础。
那么在Kubernetes集群之上到底要构建什么?比如,Web和API层中的无状态应用程序是很好的初始用例,Kubernetes帮助其补足了安全性,可伸缩性和开发者生产力方面的差距。但不限于此!
服务网格
建立在Kubernetes之上的微服务网络带来了分布式计算问题。尽管Kubernetes解决了服务发现,可扩展性问题,但Kubernetes生态系统需要适用于第7层流量网络的解决方案。Istio和Linkerd等服务网格为微服务带来了高级功能,例如流量控制,安全性和可观察性等。服务网格与Envoy等代理相结合,可以为微服务提供强大的安全性和网络抽象。而且,开发者和企业可以受益于通用框架的改编,从而提高了效率和生产率。
有状态的工作负载
在Kubernetes中运行有状态工作负载是一个快速发展的方向。因为Kubernetes有名为StatefulSets的内置对象,可为Pod提供网络寻址和顺序保证。将StatefulSet和应用程序运算符组合在一起可以为运行有状态的工作负载(例如需要持久保存状态的数据库和旧版应用程序)提供强大的解决方案。
开发者经验(DevEx)
Kubernetes的学习曲线很陡峭,所以对于企业开发者来说挑战不小。Kubernetes的挑战是有原因的,比如Kubernetes的设计仅具有极少的功能,仅提供了足够的构建基块即可在其之上构建自定义的平台即服务(PaaS)。根据企业的成熟度,平台,DevOps或SRE团队等专业团队可以自定义Kubernetes,并简化应用程序开发者的工作。由于部署容器的成本和时间很少,因此对于产品开发团队而言,自定义设置可能是一种非常强大的机制,可以提高竞争优势。增强的开发者体验很大程度上归功于产品功能的更快上市,以及嵌入式安全的最佳实践。如Skaffold之类的工具可以被用来简化开发者的Kubernetes,再比如微软Azure Dev Spaces提供的快速迭代模型,可以使每个开发者在大型团队设置中使用他们的pod实例。
无服务器
在公有云环境,不一定需要在Kubernetes上构建FaaS(功能即服务)。企业可以简单地利用专用的无服务器解决方案,比如AWS Lambda。无服务器主要有两个方面;开发者的经验是只需简单地上传一段代码,而不必担心基础架构和成本效益问题。如果在本地运行Kubernetes,则仍然可以通过PaaS工具带来无服务器的的体验功能。开发者只需提供他们的git repo即可启动该服务,但这无法带来无服务器的成本效益。在真正的无服务器模型中,仅当调用服务时,容器或进程才会进行冷启动,如Knative之类的框架可能会将无服务器的开发者经验和成本效率特性带入到本地Kubernetes的部署中。
机器学习管道
基础架构资源的有效共享是Kubernetes平台的关键功能之一。CPU等硬件资源被过度分配用于工作负载,并且在需要时也会受到限制。GPU可以在多个机器学习容器工作负载之间共享,从而为本地设置带来了成本效益。此外,还有出色的开源机器学习管道,如基于Kubernetes构建的Kubeflow。Kubeflow使数据科学家可以在Kubernetes中有效地运行其模型。Kubeflow补足了共享昂贵的GPU,以及提供强大的数据管道编排机制的差距。
云原生CI/CD管道
CI/CD管道通常包括运行一系列测试,例如单元测试,集成测试,静态代码分析,安全扫描,这些在很大程度上是通过Jenkins管道进行编排的。一些团队正在练习将这些Jenkins作业作为容器运行。容器的爆炸性增长,今天的Jenkins正努力扩大部署流程。利用Kubernetes调度程序的功能,有一个全新的出色模型可以运行整个业务流程。这是运行CI/CD编排的云原生方法。如JenkinsX和Tekton之类的项目,将充分利用Kubernetes的编排和调度能力,将你的Jenkins管道提升到新的水平。
零信任网络
如今许多企业都在努力发展基于边界的网络安全模型,使得Kubernetes容器网络接口(CNI)的插件有了用武之地。如Calico之类的项目可以实施Kubernetes网络策略来隔离每个工作负载,从而提供不信任任何工作负载的细粒度分区。
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
使用 Spring cloud Gateway 构建微服务网关
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 使用 Spring cloud Gateway 构建微服务网关 Spring Cloud Gateway 是 Spring Cloud 的一个子项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。 Spring Cloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且基于 Filter 的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。 相关概念 Route(路由):网关的基本构件块,类似于 nginx 的 location 配置。由一个 ID、一个目标 URI、一组 Predicate 和一组 Filter 定义 Predicate(断言):路由组成的一部分,主要负责路由的匹配,来决定此次请求是否匹配路由,我们可以使用它匹配来自 HTTP 请求的任...
- 下一篇
分布式锁用 Redis 还是 Zookeeper?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 为什么用分布式锁? 在讨论这个问题之前,我们先来看一个业务场景:系统A是一个电商系统,目前是一台机器部署,系统中有一个用户下订单的接口,但是用户下订单之前一定要去检查一下库存,确保库存足够了才会给用户下单。由于系统有一定的并发,所以会预先将商品的库存保存在redis中,用户下单的时候会更新redis的库存。此时系统架构如下: 但是这样一来会产生一个问题:假如某个时刻,redis里面的某个商品库存为1,此时两个请求同时到来,其中一个请求执行到上图的第3步,更新数据库的库存为0,但是第4步还没有执行。而另外一个请求执行到了第2步,发现库存还是1,就继续执行第3步。这样的结果,是导致卖出了2个商品,然而其实库存只有1个。很明显不对啊!这就是典型的库存超卖问题此时,我们很容易想到解决方案:用锁把2、3、4步锁住,让他们执行完之后,另一个线程才能进来执行第2步。 按照上面的图,在执行第2步时,使用Java提供的synchronized或者ReentrantLock来锁住,然后在第4步执行完之后才释...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主