kafka实现海量数据下的EFK架构优化升级


一、数据背景

在海量数据场景下,日志管理和分析是一项重要任务。为了解决这个问题,EFK 架构(Elasticsearch + Fluentd + Kibana)已经成为流行的选择。

然而,随着数据规模的增加,传统的 EFK 架构可能面临性能瓶颈和可用性挑战。为了提升架构的性能和可伸缩性,我们可以结合 Kafka 和 Logstash 对 EFK 架构进行优化升级。

首先,引入 Kafka 作为高吞吐量的消息队列是关键的一步。Kafka 可以接收和缓冲大量的日志数据,减轻 Elasticsearch 的压力,并提供更好的可用性和容错性。

然后,我们可以使用 Fluentd 或 Logsta...

Read more

k8s日志收集方案


一、简介

在当下微服务及数字化时代,日志分析已成为企业和组织管理、监控和优化系统的重要手段。

一个有价值的日志分析平台能够帮助企业从海量的日志数据中提取有用的信息,并转化为洞察力和决策支持。

通过对日志的深入分析,企业可以发现潜藏的问题、识别异常行为、改进业务流程以及预测未来趋势,从而提升运营效率、降低风险并优化用户体验。

一个有价值的日志分析平台应该具备以下关键特点:

  1. 高度可扩展性:能够处理和存储大规模的日志数据,适应不断增长的数据量和用户需求。

  2. 实时性和及时性:能够实时采集、分析和呈现日志数据,以便及时发现和响应事件和问题。

  3. 强大的搜索和查询功能:具备高效的搜索和查询引擎...

Read more

K8S中部署Ceph


一、概述

Ceph 在 k8s 中用做共享存储还是非常方便的,Ceph 是比较老牌的分布式存储系统,非常成熟,功能也强大,支持三种模式(块存储、文件系统存储、对象存储),所以接下来就详细讲解如何在 k8s 使用 ceph。

二、Ceph Rook 介绍

Rook是一个开源的云原生存储编排工具,提供平台、框架和对各种存储解决方案的支持,以和云原生环境进行本地集成。

  • Rook 将存储软件转变成自我管理、自我扩展和自我修复的存储服务,通过自动化部署、启动、配置、供应、扩展、升级、迁移、灾难恢复、监控和资源管理来实现。Rook 底层使用云原生容器管理、调度和编排平台提供的能力来提供这些...

Read more

K8S 中的有状态和无状态?


Kubernetes 中的有状态和无状态?

Kubernetes 中,无状态(Stateless)有状态(Stateful)是描述应用行为和架构的两个重要概念。

它们对于如何设计、部署和管理应用程序在 Kubernetes 集群中的行为至关重要。

img

无状态

无状态应用(Stateless Applications):无状态应用是指那些不依赖于任何特定实例状态的应用程序。这意味着无论何时何地启动应用实例,它们都能以相同的方式运行,并且不依赖于之前的执行状态。

无状态应用通常易于扩展,因为它们可以被随意地复制和销毁,而不会丢失数据或状态。

无状态应用的特点:

1、可替换性:实例之间没有...

Read more

K8S部署策略


Kubernetes 部署策略

随着市场的快速发展,产研团队需要更快迭代需求、更高频发布变更。但由于无法完全模拟线上流量和真实场景,频繁发布可能导致整个系统风险。当出现一个小问题,就可能导致服务的可用性受损、用户体验甚至客户服务受到影响。而随着云技术和基础架构的成熟,发布过程中可以通过引入相应的发布策略,能让我们在早期实验阶段就可以发现、调整问题,来保证整体系统的稳定性。

目前常见的发布策略有蓝绿发布红黑发布金丝雀(灰度)发布滚动发布等。

不同的发布策略及特点介绍

蓝绿发布

概念定义:蓝绿发布是一种以最小的停机时间做服务升级的策略。需要维护的两个版本的环境分别称为 “蓝环境” 和 ...

Read more

StorageClass


StorageClass自动化存储

如果你了解PV和PVC的基本用法——管理员手动创建PV,开发人员通过PVC申请使用,就可以继续往下看了。在实际生产环境中,尤其是大型集群里,手动管理PV就像用筷子吃米饭,一粒一粒夹,效率太低了!而通过StorageClass,可以告别手动创建PV!一键实现动态存储供给,让存储管理像喝水一样简单。

一、核心概念:StorageClass是什么?

StorageClass是Kubernetes中用于自动化存储资源供给的API对象,主要解决传统存储管理的两个痛点:

  1. 无需手动创建PV(PersistentVolume),PVC(PersistentVolum...

Read more

PDB-Pod中断保持


PDB

Pod Disruption Budget (PDB) Pod 是 Kubernetes 中用于控制应用程序在执行干扰性操作(如节点维护、升级等)时的可用性的一种机制。PDB 允许用户定义在这些操作期间可以容忍的 Pod 中断数量,从而确保应用程序的高可用性。

主要用途

  1. 确保高可用性:通过限制同时中断的 Pod 数量,确保应用程序在维护期间仍然有足够的副本运行,从而维持服务的可用性。
  2. 控制干扰操作的影响:在执行如节点维护、升级等干扰性操作时,PDB 可以限制这些操作对应用程序的影响,防止服务中断。

关键概念

  1. Pod 中断:Pod 中断是指 Pod 被驱逐或删除,这可能由于节...

Read more

k8s资源限制


在Kubernetes中,Namespace的资源限制主要通过两种资源对象实现:

ResourceQuota(资源配额)和LimitRange(限制范围)。它们共同作用于Namespace级别,用于控制资源使用、防止资源滥用,并确保集群资源的合理分配。

1. ResourceQuota(资源配额)

ResourceQuota 用于限制整个Namespace可使用的总资源量对象数量,防止单个Namespace过度占用集群资源。它可以限制的内容包括:

  • 计算资源总量(CPU、内存的请求和限制)
  • 存储资源总量(PVC的存储请求)
  • 可创建的对象数量(如Pod、Service、ConfigM...

Read more

Elasticsearch快速入门


一、Elasticsearch

1.1 什么是 Elasticsearch?

Elasticsearch 是一个分布式的开源搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。简单来说只要涉及搜索和分析相关的, ES 都可以做。

图片

1.2 Elasticsearch 的用途?

Elasticsearch 在速度和可扩展性方面都表现出色,而且还能够索引多种类型的内容,这意味着其可用于多种用例:

  • 比如一个在线网上商店,您可以在其中允许客户搜索您出售的产品。在这种情况下,您可以使用 Elasticsearch 存储整个产品目录和库存,并为它们提供搜索和自动完...

Read more

k8s面试题大全


K8S面试题

一、Kubernetes 基础知识面试题10 道面试题

1、什么是 Kubernetes?

Kubernetes 是一个开源容器管理工具,负责容器部署,容器扩缩容以及负载平衡。它提供了出色的社区,并与所有云提供商合作。因此,我们可以说 Kubernetes 不是一个容器化平台,而是一个多容器管理解决方案。

2、Kubernetes 与 docker 什么关系?

Docker 提供容器的生命周期管理,Docker 镜像构建运行时容器。但是,由于这些单独的容器必须通信,因此使用 Kubernetes。因此,我们说 Docker 构建容器,这些容器通过 Kubernetes 相互...

Read more