Kubernetes 集群中安装 Drone

基于 Drone 的 CI/CD(一)

基于云原生的应用大多都离不开CI/CD工具或平台。现有很多优秀的开源工具,如:JenkinsGithub Actions 等,对于Jenkins来说比较笨重,占用系统资源较多,而GitHub Actions则依赖于GitHub云服务器,无法和本地k8s集群交互。

有没有一种工具可以在本地环境运行,资源占用少,方便学习和实践。本文将介绍一个比较轻量级的CI工具 - Drone,接下来将采用Helm的方式在Kubernetes中安装 Drone工具。

[阅读全文]

GitHub Actions 初探

使用Github Actions构建流水线并使用Helm部署制品到K8S

GitHub Actions 是 Github 在2018年10月份推出的持续集成服务。可免费使用,你可以在 GitHub Actions 的仓库中自动化、自定义和执行软件开发工作流程。 可以发现、创建和共享操作以执行您喜欢的任何作业(包括 CI/CD),并将操作合并到完全自定义的工作流程中。

本文是一个简单的教程,演示如何使用 GitHub Actions 自动构建SpringBoot应用流水线并使用Helm部署到K8S集群。

GitHub Actions

[阅读全文]

使用 Elastic 可观测性实现云原生应用监控(3/4)

使用Metricbeat对K8S集群进行指标监控

MetricBeat 是一种轻量型的指标采集器,是 Elastic Stack 的一部分,因此能够与 Elasticsearch 和 Kibana 无缝协作。Metricbeat 能够以一种轻量型的方式,从系统和服务收集指标,输送各种系统和服务统计数据。

Metricbeat 提供多种内部模块,这些模块可从多项服务(诸如 Apache、Jolokia、NGINX、MongoDB、MySQL、PostgreSQL、Prometheus 等等)中收集指标。安装简单,完全零依赖性。只需在配置文件中启用您所需的模块即可。

[阅读全文]

使用 Elastic 可观测性实现云原生应用监控(2/4)

使用Fluent Bit采集K8S应用日志

本篇文章将学习如何使用 Fluent Bit 采集 Kubernetes 集群的应用日志,并将日志数据输出到ElasticSearch中,使用Kibana将其可视化出来。日志收集工具还有很多,如:Fluentd,Filebeat,Promtail等等。其中 Fluent Bit,Fluentd和 Filebeat 都使用过,基本上都能满足项目上对于日志采集的需求。个人比较首推Fluent Bit,主要是因为其资源占用非常少,采集效率高,设计优雅,配置简单。可以看下下图中,Fluent Bit 的 Data pipeline:

img

[阅读全文]

使用 Elastic 可观测性实现云原生应用监控(1/4)

搭建ElasticSearch集群和Kibana应用

在本系列文章中,我们将学习如何使用 Elastic Stack 来实现对云原生应用的监控。该解决方案具有完备的日志、指标、APM 和可用性采集能力,可以在大规模/云原生的环境下,完成服务质量目标(SLO)的管理。 总的来说主要包括3个方面:

  • Metrics:通过收集系统各个组件的时序数据,比如 CPU、内存、磁盘、网络等信息,通常可以用来显示系统的整体状况以及检测某个时间的异常行为;
  • Logging:通过日志收集工具(如Filebeat,Fluentd等)收集系统日志,将用户的数据索引到 Elasticsearch 中并在 Kibana 中进行可视化;
  • Tracing:通过使用APM(应用性能监控)工具收集服务执行的每一个请求和步骤(比如 HTTP 调用、数据库查询等),通过追踪这些数据,我们可以检测到服务的性能,并相应地改进或修复我们的系统。

image-20210715125202838

[阅读全文]

Typora+iCloud+uPic搭建Markdown写作神器

我非常喜欢记录笔记,也使用过很多写笔记的APP,从印象笔记 –> Notion –> Emacs –> Bear–> 印象笔记,由于个人在不同阶段有不同记录笔记的需求,导致时常会去寻找满足所有需求的笔记APP。迁移笔记也是非常的痛苦,尤其是Markdown笔记迁移到非Markdown笔记APP。

个人喜欢使用Markdown写作,个人博客就是在Mac系统上使用Typora写完后,直接推送到Github Pages就行了,但是Typora是本地的Markdown编辑器,无法同步到移动端。

最近发现可以使用Typora + iCloud + uPic来记录我的笔记和博客了:

  • 使用Typora这种简洁高效的Markdown Editor来记录笔记和博客
  • 使用iCloud同步md文件到不同的客户端(如:Mac,iPhone等)
  • 使用uPic自动上传图片

这样就可以解决了我所有的记笔记的痛点了:

  1. 可以使用Markdown语法来记录笔记
  2. 在MacOS本地使用Typora写笔记高效方便,启动快,不用考虑文件同步丢失等问题
  3. 体验不再割裂,笔记和博客都使用Typora书写
  4. Markdown文件通过iCloud同步,实现多客户端同步,解决了我时常内购了笔记APP又切换APP导致的浪费
  5. uPic解决了我图床问题,之前笔记的图片存在本机,博客的图片存储github上
[阅读全文]

ingress-nginx 高并发实践

Nginx Ingress Controller 基于 Nginx 实现 Kubernetes Ingress API。Nginx 是一款高性能网关,在实际生产环境运行时,需要对参数进行调优,以保证其充分发挥高性能的优势。

本文将介绍针对 Nginx Ingress 全局配置与内核参数调优的方法及其原理,让 Nginx Ingress 更好的适配高并发业务场景。

[阅读全文]