当前位置: 首页 > news >正文

Kubernetes上的十大应用程序

本文最初发表于kubedex,经该网站授权由InfoQ中文站翻译分享。

\\

在崭新的Kubernetes集群上,经常会安装的helm chart都有哪些呢?下面这个清单代表了我们的观点。

\\
\\t\t\t

序号

\\t\t\t
\\t\t\t

名称

\\t\t\t
\\t\t\t

理由

\\t\t\t
\\t\t\t

1

\\t\t\t
\\t\t\t

nginx-ingress

\\t\t\t
\\t\t\t

世界上最常见的前端代理,非常易于搭建,功能具有通用性。根据场景的不同,可能会有更好的Ingress,但是它的份额占到了99%。

\\t\t\t
\\t\t\t

2

\\t\t\t
\\t\t\t

coredns

\\t\t\t
\\t\t\t

Kubernetes上最好的DNS服务器。默认的KubeDNS比较糟糕,所以毫无疑问你需要将它切换掉。借助coredns你还可以启用一些很酷的插件,使其能够与其他的应用程序协作,比如Prometheus。

\\t\t\t
\\t\t\t

3

\\t\t\t
\\t\t\t

Prometheus

\\t\t\t
\\t\t\t

每个人都应该使用Prometheus,它提供了自定义的时序监控功能,允许你instrument代码并在Grafana中以图形化的方式进行监视。你还可以搭建告警功能,当生产环境崩溃或延迟让顾客感到不满时,你能得到提醒。它同时还需要Grafana和kube-state-metrics chart。

\\t\t\t
\\t\t\t

4

\\t\t\t
\\t\t\t

Istio

\\t\t\t
\\t\t\t

通过Istio服务网格连接微服务能够解锁大量很酷的特性,包括流量控制、认证与授权、加密和可观察性。你可以移除微服务中大量的应用程序逻辑,让Istio来处理它。

\\t\t\t
\\t\t\t

5

\\t\t\t
\\t\t\t

Nuclio

\\t\t\t
\\t\t\t

Nuclio是我们目前最喜欢的FaaS应用,它为实时和数据驱动应用提供了Serverless Function,与AWS Lambda的处理方式相同,只不过是在你的集群中运行。

\\t\t\t
\\t\t\t

6

\\t\t\t
\\t\t\t

Jaeger

\\t\t\t
\\t\t\t

为你的应用提供分布式跟踪功能,它能够跟踪每个微服务的每次API调用。我们都知道,微服务最大的问题就是可观察性。在解决这个问题方面,我们走过了很长的道路。

\\t\t\t
\\t\t\t

7

\\t\t\t
\\t\t\t

Fluentd

\\t\t\t
\\t\t\t

捕获日志并将其发送至ElasticSearch,这样我们就可以通过搜索错误日志判断微服务中出现了什么问题。在使用它的时候,还需要Kibana chart。

\\t\t\t
\\t\t\t

8

\\t\t\t
\\t\t\t

Anchore

\\t\t\t
\\t\t\t

如今,谁的应用会不关注安全性呢。我们需要它来捕获安全漏洞并与CI/CD管道进行集成。

\\t\t\t
\\t\t\t

9

\\t\t\t
\\t\t\t

Jenkins

\\t\t\t
\\t\t\t

为容器提供CI/CD功能。几乎每个人都在运行它,不过喜欢它的人似乎并不多,但是它非常流行,在安装Gitlab之前,它是默认的方案。

\\t\t\t
\\t\t\t

10

\\t\t\t
\\t\t\t

NATS

\\t\t\t
\\t\t\t

一个非常酷的PubSub消息系统,因为并非所有的内部通信都需要通过API,它还有一些很酷的流特性。

\\t\t\t

将我们最喜欢的应用限制在10个确实非常困难。除此之外,还有一些非常棒的应用程序并没有能够包含进来。我们最终优先考虑的是核心功能的升级以及为开发人员所带来的帮助。

\\

Ark

\\

Heptio Ark是一个用来管理灾难恢复的工具,尤其适用于Kubernetes集群资源和持久化卷。

\\

其实,没有人愿意编写备份和恢复脚本。我们推荐你了解一下这个应用,它可以为你解决这些问题。

\\

Gitlab

\\

可以说,Gitlab比Jenkins更好,应该取代它出现在列表中。但是,我们不能忽视一个事实就是几乎每个人都在运行Jenkins,所以这一次我们将票投给了流行度。

\\

Traefik和Ambassador

\\

另外一个有争议性的就是在列表中排名第一的nginx-ingress。很多人可能会说“我希望将nginx换成Traefik或Ambassador”。

\\

这次,我们站在了新人和流行度这一边。随着时间的推移,会有更多高级用户最终放弃nginx-ingress,转而研究这两个可选方案。

\\

external-dns

\\

我们在大多数集群上都运行external-dns,它自动管理我们外部DNS记录的更新。

\\

相对于列表中的其他条目,它并没有提供太多的功能,但有时候你可能还是需要安装它,以避免手动配置。

\\

Magic Namespace

\\

Magic Namespace是用来管理namespace之间安全性的helm chart。如果你运行多租户集群的话,毫无疑问你将会遇到这方面的问题。

\\

chaoskube

\\

每个人都喜欢混乱的monkey测试(chaos monkey)。

\\

但是我们不能一开始就告诉人们安装一个chart,让它任意地杀死集群中的pod。如果有人足够自信,能够忍受混沌过程的考验,那么Chaoskube就是为他们准备的。

\\

Kubernetes Dashboard和kube-ops-view

\\

这些仪表盘应用并没有包含在列表中。如果你喜欢使用漂亮的UI界面来展现集群状态的话,那么kube-ops-view非常棒。如果你更喜欢点击按钮的操作方式的话,那么Kubernetes Dashboard可能更适合你。

\\

cert manager

\\

cert-manager是一个Kubernetes应用程序,用于自动化管理和发布来自不同发行源的TLS证书。

\\

如果你已经厌倦了围绕像LetsEncrypt之类的服务创建自定义自动化功能,那么可以了解一下cert manager。

\\

Envoy

\\

这个有点悲剧色彩,Envoy是非常棒的edge和服务代理,但是没有人会以helm chart的形式来使用它。它会打包到某个chart中,比如前十列表中的Istio。我在这里将它列出来,也是某种程度上为它伸张正义。

\\

Spinnaker

\\

Spinnaker是非常流行的CI/CD平台,它是由Netflix开源的。它未能跻身前十,是因为它有些复杂。它需要不少规划工作才能搭建起来,此外,它是可配置的,很多内容都是围绕Terraform完成的。如果你的团队有不少人,应用非常复杂,需要一个强大的方案来替代通过各种hacked手段连接在一起的Jenkins job的话,那么可以了解一下Spinnaker。

\\

Kong

\\

如果你要暴露API给外部世界的话(运行Kubernetes的场景下基本都会这样做),那么你应该了解一下Kong,它是一个API网关,能够帮助我们管理很多标准的功能,比如认证、路由、日志等等。它还有一个插件系统,借助该系统能够为其扩展一些非常棒的特性。

\\

感谢张婵对本文的策划。

相关文章:

  • 开发技巧:高效的使用 Response.Redirect
  • 正则表达式-基础知识Review
  • Andrew Ng机器学习公开课笔记 -- 线性回归和梯度下降
  • 四则运算1
  • Windows API 第15篇 GetVolumeInformation 获取磁盘卷(驱动器)信息
  • 看完这篇文章,你还觉得Python难吗?
  • 使用AIR进行移动APP开发常见功能和问题(上)
  • 应用el-tabs模拟nav menu组件
  • “ an error occurred during ssl communication”--VisualSVN
  • mybatis 动态SQL .1
  • 从零开始编写自己的C#框架(2)——开发前准备工作
  • 下列关于异常处理的描述中,错误的是()。
  • centos搭建svn 服务器 并同步到web 目录(总结)
  • windows phone 7 中怎样定义和使用资源(Resource)
  • Scrum丰田之道
  • JavaScript-如何实现克隆(clone)函数
  • 03Go 类型总结
  • ES学习笔记(12)--Symbol
  • Fastjson的基本使用方法大全
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • javascript 总结(常用工具类的封装)
  • JavaScript-Array类型
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Vue 动态创建 component
  • Vue全家桶实现一个Web App
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 第2章 网络文档
  • 关于List、List?、ListObject的区别
  • 如何学习JavaEE,项目又该如何做?
  • 入口文件开始,分析Vue源码实现
  • 我的业余项目总结
  • 小程序开发之路(一)
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 由插件封装引出的一丢丢思考
  • 再谈express与koa的对比
  • 正则学习笔记
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (ZT)出版业改革:该死的死,该生的生
  • (分布式缓存)Redis分片集群
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)负载均衡,回话保持,cookie
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .net 微服务 服务保护 自动重试 Polly
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • :如何用SQL脚本保存存储过程返回的结果集
  • @Controller和@RestController的区别?