大数据&云计算|JFrog如何在生产环境玩转Kubernetes?
Kubernetes(简称:K8s)是开源的容器编排系统 , 它已成为云原生应用事实上的标准 , 更是云原生架构、部署和管理方式发展的关键推动力 。 企业正在使用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的应用过程 。
在过去两年中 , JFrog着手在Kubernetes的三个大型公有云(AWS , GCP和Azure)上部署和管理JFrog SaaS应用程序 。 这个过程 , JFrog收获了很多有益和重要的经验教训 。
为了轻松管理Kubernetes上的应用程序部署 , JFrog使用了Helm 。 Helm是用于管理Kubernetes软件包的工具 , Helm图表有助于定义 , 安装和升级Kubernetes应用程序 。 JFrog在Helm中心发布并维护其所有产品的官方Helm图表 , 以供其客户 , 社区和其SaaS解决方案使用 。
JFrog如何在其内部环境中使用Kubernetes?
出于开发目的 , JFrog具有CI/CD流程 , 可在Kubernetes上安装JFrog产品 。 根据需要 , 开发人员可以启动此过程并指定要安装的分支版本 , 而无需应用程序主版本或分支版本 。 部署过程使用JFrog官方Helm图表 , 结果是一个隔离的Kubernetes命名空间 , 上面安装了所有应用程序 。
本文插图
为了进行登陆和试生产 , 他们拥有多个托管集群 , 每个云供应商至少一个集群 , 并且它们正在运行JFrog产品安装的完整CI/CD流程 , 以及Kubernetes基础架构和工具 , 以便在运行之前测试并发布错误 。 升级他们的生产环境 。
JFrog研究了在AWS , GCP和Azure上自我管理Kubernetes集群的各种选项 。 JFrog发现 , 最简单、直接的方法是使用由云供应商EKS , GKE和AKS提供的托管Kubernetes解决方案 。
JFrog了解到 , 独自管理集群需要大量JFrog没有的资源和技能 , 并且JFrog需要更好地专注于自身真正擅长的事情 。 JFrog使用相同的API在不同地区的EKS , GKE和AKS上运行生产环境 。
如今 , JFrog的新客户部署是自助服务和完全自动化的流程 , 无需DevOps工程师的干预 。 可以在几分钟之内在任何受支持的云区域上使用这个环境 。
在生产中使用Kubernetes , JFrog仅使用一个或两个命令 , 一切都在其按部就班的运行 , 并且具有应用程序的自动修复和自动缩放功能 , 这充分释放了开发人员的生产效率 。
但是 , JFrog也认识到 , 这个过程并不是想象的那么平滑 。 在生产中使用Kubernetes时 , 这是必须经历的过程 。 JFrog团队在使用Kubernetes之后吸取了哪些经验教训?
1.可见性
由于Kubernetes的复杂性 , 了解系统中正在发生的事情很重要 。 不再需要SSH到服务器并“获取日志” 。 开发人员不需要kubectl访问权限即可调试其应用程序 。
2.开发=分期=生产
【大数据&云计算|JFrog如何在生产环境玩转Kubernetes?】
开发和生产环境 , 功能和性能问题之间的差异仅在生产中发现 。 为了最大程度地减少环境之间的差异 , 最好创建类似于生产的环境以减少生产中断的风险 。 确保在所有环境中使用相同的Helm图表也很重要 。
3.知道极限
需要学习和了解应用程序在资源使用 , 内存、CPU、数据库等方面的工作方式 , 以及应用程序所需的一切 , 以便以最小的力量有效地执行和运行 。
4.容器优先级和容器服务质量
Kubernetes在调度和清除集群上的工作负载时会使用几条数据 。 当无法正确设置这些参数 , 工作负载停机以及重大的总体群集运行状况问题时 , 可能会出现性能问题 。 资源请求和限制是需要考虑的最明显的设置 。 同样 , 必须全面考虑Pod的生命周期 。
JFrog总结的注意事项
你的应用是CPU还是内存密集型?
你的应用程序出现在另一个节点上有多容易?
选项:
对重要的应用程序有更高的pod优先级
Pod QoS(服务质量)
Guaranteed(requests = limits)
Burstable(已设置一些资源)
Best effort(未设置资源)
5.零停机升级
无论出于任何原因 , 都应努力将服务的停机时间减至最少 。 应用程序版本升级是应该能够随时运行的功能 。 使应用程序在具有多个负载均衡的Pod的高可用性模式下运行 , 消除了在升级环境时发生停机的风险 。 使用Kubernetes , 可以选择进行滚动更新 , 因此在特定时间只有一个Pod即将进行升级 , 而其他Pod仍在运行 , 并且将依次升级 。
6.安全性
JFrog在日常任务中使用自己的几种工具 。 他们相信管理Docker镜像和Helm图表的最佳方法是使用Artifactory(Artifactory是JFrog的一个产品 , 用作二进制存储库管理器) 。 他们正在使用内部Artifactory服务器作为Docker存储库和Helm存储库 。 在部署过程中 , 部署所需的一切都从Artifactory获取 , 因此他们可以完全控制开发和生产Kubernetes集群中正在运行的内容的可见性 。 最重要的是 , X-ray运行并扫描存储在该Artifactory中的所有第三方Docker镜像 。 因此 , 只有经过扫描和批准的镜像才能进入Kubernetes集群 。
本文插图
7.持续学习
学习永远在路上 。 Kubernetes对于任何企业都是全新的 。 开发人员和运营团队必须学习它的工作原理和使用方法 , 学习互联网上的最佳实践和建议 。 应该始终继续调整基础架构 , 应用程序及其运行 。 同时 , 还需要时刻关注应用程序的情况 。
【来源:云智时代】
声明:转载此文是出于传递更多信息之目的 。 若有来源标注错误或侵犯了您的合法权益 , 请作者持权属证明与本网联系 , 我们将及时更正、删除 , 谢谢 。邮箱地址:newmedia@xxcb.cn
推荐阅读
- 凉茶|凉茶最大的问题不是添加西药,而是冒充饮料
- 上汽大众途观x|颜值比途观L高!上汽大众途观X将亮相2020北京车展,明年初上市
- 未来的大学生活“长啥样”? 来看学长为你写下的万字指南
- the|新冠肺炎成美国第三大致死原因 仅次于心脏病和癌症
- 多所在京大学录取线来了 各校设置多条投档线
- 旅行路上阿|成都反差最大景区,一边是游客专属一边本地人最爱,门票相差4倍
- 旅行在路上啊|成都反差最大景区,一边是游客专属一边本地人最爱,门票相差4倍
- 腾讯任天堂Switch国行《健身环大冒险》将于8月19日发布
- 珠海生活资讯交流|推动琴澳旅游合作, 大横琴文旅展示中心18日在横琴口岸正式开放
- 提供“让兴趣成为职业”的可能 “微经济”有大宝藏