最近在学习DDD Event Storming以及ETL工具时,对Apache Kafka产生了很大的兴趣,准备搭建一套Development环境方便之后的学习。
GitHub Actions 初探
使用Github Actions构建流水线并使用Helm部署制品到K8S
GitHub Actions 是 Github 在2018年10月份推出的持续集成服务。可免费使用,你可以在 GitHub Actions 的仓库中自动化、自定义和执行软件开发工作流程。 可以发现、创建和共享操作以执行您喜欢的任何作业(包括 CI/CD),并将操作合并到完全自定义的工作流程中。
本文是一个简单的教程,演示如何使用 GitHub Actions 自动构建SpringBoot应用流水线并使用Helm部署到K8S集群。
使用 Elastic 可观测性实现云原生应用监控(4/4)
使用APM对部署在K8S集群的应用程序进行性能监测
Elastic APM
是一款免费开源的应用程序性能监测工具,我们可以借助免费且开放的 Elastic APM 扩展至应用程序指标。精确查看您的应用程序都在哪里耗时了,然后便可快速修复问题,这样对发布的代码可以保持十足信心。
使用 Elastic 可观测性实现云原生应用监控(3/4)
使用Metricbeat对K8S集群进行指标监控
使用 Elastic 可观测性实现云原生应用监控(2/4)
使用Fluent Bit采集K8S应用日志
本篇文章将学习如何使用 Fluent Bit 采集 Kubernetes 集群的应用日志,并将日志数据输出到ElasticSearch中,使用Kibana将其可视化出来。日志收集工具还有很多,如:Fluentd,Filebeat,Promtail等等。其中 Fluent Bit,Fluentd和 Filebeat 都使用过,基本上都能满足项目上对于日志采集的需求。个人比较首推Fluent Bit,主要是因为其资源占用非常少,采集效率高,设计优雅,配置简单。可以看下下图中,Fluent Bit 的 Data pipeline:
使用 Elastic 可观测性实现云原生应用监控(1/4)
搭建ElasticSearch集群和Kibana应用
在本系列文章中,我们将学习如何使用 Elastic Stack 来实现对云原生应用的监控。该解决方案具有完备的日志、指标、APM 和可用性采集能力,可以在大规模/云原生的环境下,完成服务质量目标(SLO)的管理。 总的来说主要包括3个方面:
- Metrics:通过收集系统各个组件的时序数据,比如 CPU、内存、磁盘、网络等信息,通常可以用来显示系统的整体状况以及检测某个时间的异常行为;
- Logging:通过日志收集工具(如Filebeat,Fluentd等)收集系统日志,将用户的数据索引到 Elasticsearch 中并在 Kibana 中进行可视化;
- Tracing:通过使用APM(应用性能监控)工具收集服务执行的每一个请求和步骤(比如 HTTP 调用、数据库查询等),通过追踪这些数据,我们可以检测到服务的性能,并相应地改进或修复我们的系统。
不同ingress controller的性能测试
Ingress Controller有很多实现方式,如Kubernetes官方,Nginx官方,Kong,Traefik等等,下面对以下三种不同的Ingress Controller进行性能测试,Kubernetes Ingress VS Nginx Ingress(Nginx官方出品)VS Traefix Ingress。
[阅读全文]ingress-nginx 性能压测
Ingress是目前Kubernetes集群流量接入的重要入口,了解其性能指标有助于用户选用合适的网络方案。
[阅读全文]ingress-nginx 高并发实践
Nginx Ingress Controller 基于 Nginx 实现 Kubernetes Ingress API。Nginx 是一款高性能网关,在实际生产环境运行时,需要对参数进行调优,以保证其充分发挥高性能的优势。
本文将介绍针对 Nginx Ingress 全局配置与内核参数调优的方法及其原理,让 Nginx Ingress 更好的适配高并发业务场景。
[阅读全文]ingress-nginx在TKE上部署的最佳实践
Nginx Ingress 有多种部署方式,本文将介绍 Nginx Ingress 在 TKE 上的一些部署方案,这几种方案的原理、各自优缺点以及一些选型和使用上的建议。
[阅读全文]ingress-nginx的安装使用
开源的 Ingress Controller 的实现使用量最大的莫过于 Ingress Nginx 了,可作为反向代理将外部流量导入集群内部,将 Kubernetes 内部的 Service 暴露给外部,在 Ingress 对象中通过域名匹配 Service,这样就可以直接通过域名访问到集群内部的服务了。
实际 Ingress Nginx 有两种实现:
第一种是 Kubernetes 开源社区的实现,第二种是 Nginx 官方的实现,我们通常用的是 Kubernetes 社区的实现,这也是本文所关注的重点。
[阅读全文]Kubernetes API资源的使用
使用哪个API Group 和Version呢?
在使用Kubernetes
的时候,因为有太多的资源、太多的版本、太多的组了,这些都非常容易产生混淆。如果我们通过 YAML 文件定义过 Deployment 这样的资源清单文件的话,那么你应该会看到apiVersion: apps/v1beta2
、apiVersion: apps/v1
等等这样的信息,那么我们到底应该使用哪一个呢?哪一个才是正确的呢?如何检查Kubernetes
集群支持哪些?其实我们使用kubectl
工具就可以来解决我们的这些疑惑。
当前我使用的Kubernetes
的版本是1.18.8
。