大数据&云计算JFrog如何在生产环境玩转Kubernetes?


Kubernetes(简称:K8s)是开源的容器编排系统 , 它已成为云原生应用事实上的标准 , 更是云原生架构、部署和管理方式发展的关键推动力 。 企业正在使用Kubernetes创建由微服务和无服务器功能组成的现代架构 , 这些架构可以大规模无缝地扩展 。
大数据&云计算JFrog如何在生产环境玩转Kubernetes?
本文插图
现在 , Kubernetes处于Gartner炒作周期的顶端 。 在未来的几年中 , 将有越来越多的企业必须认识到Kubernetes的优劣势 , 从而正确有效地使用它 。
Kubernetes为何受追捧?
Kubernetes解决了企业中的实际问题 。 它提供了企业所需的整个工具生态系统;包括网络、计算、内存分配 , 负载均衡 , 对象存储和调度等 。
基础架构作为数据
使用YAML文件可以在Kubernetes中毫不费力地表示所需的资源 。 在YAML文件中定义所有内容后 , 可以选择在版本控制下(例如Git)对其进行管理 。 同样 , 从可伸缩性的角度来看 , 这很容易 , 因为可以在YAML文件中轻松更改和更新所有内容 。
可扩展性
拥有大量资源 , 例如statefulset , configmap , secrets , cron作业等 。 用户可以根据需要添加更多类型 。
不断的演进
在过去的几年中 , Kubernetes每年都会发布3或4个主要版本 , 其中包含许多新功能和更改 , 而且从未放慢演进的速度 。
生态
Kubernetes拥有强大健康的社区生态 , 它得到了云原生计算基金会的支持 , 而且它是CNCF第一个毕业的项目 。 KubeCon是全球最大的开源活动之一 , 吸引了众多开源爱好者 。 从2019年开始的GitHub年度调查显示 , Kubernetes是贡献者排名前十的开源项目之一 。 根据StackOverFlow所做的年度调查 , 在过去两年中 , Kubernetes成为开发者 , 以及Linux和Docker喜爱的平台之一 。
为什么选择Kubernetes?
轻松创建运行环境
开发者以及生产人员都需要高速创建用于日常工作的环境 。 使用Kubernetes可以轻松实现这一点 。
更好的集成性
如果开发者想要建立一个环境来测试其分支与其他应用程序的版本 。 过去 , 他们必须设置虚拟机 , 安装和设置网络配置等 , 这需要大量时间 。 现在Kubernetes可轻松实现 。
更好地利用资源
在Kubernetes中 , 可以在CPU和内存较少的情况下启动应用程序 , 并根据消耗量增加特定的限制 。 它使管理员可以轻松管理资源并节省大量成本 。
将容器投入生产
开发环境必须尽可能地类似于生产环境 。 在Docker上运行应用程序是不错的选择 , 但Docker需要Kubernetes这样的容器编排平台 。
与供应商无关的相同API
由于企业需要在主要的云提供商上部署所有产品 , 因此企业需要提供一个API , 而Kubernetes则通过单个API在供应商之上提供了抽象层 。
自动缩放和自动修复应用程序
根据情况进行相应扩展和修复的能力是Kubernetes的一大特色 。
Kubernetes的安全
在生产环境中运行容器 , 需要大量的精力和计算 。 它要求解决如容错 , 弹性伸缩 , 滚动部署和服务发现之类的问题 。 这就是Kubernetes作为容器编排的用武之地 。 当然还有其他编排平台能选择 , 但Kubernetes获得了主要云提供商的支持 。
Kubernetes , 容器化和微服务趋势带来了新的安全挑战 。 Kubernetes Pod可以很容易地在所有基础架构类中分布 , 默认情况下会导致Pod之间的内部流量增加 。 这也意味着安全问题 , 而Kubernetes的攻击面通常更大 。 而且 , Kubernetes的高度动态 , 且短暂的环境无法与旧版安全工具完美融合 。
JFrog生产环境中使用Kubernetes的背景
不同的企业可能面临不同的挑战 , 我们一起来看看JFrog的使用案例 。 JFrog的DevOps工程师描述了Kubernetes在JFrog的应用过程 。