Kubernetes自建账号及认证


X509认证

1.创建出用户的私钥

# 创建放用户证书的目录
root@k8s-master01:~# cd /etc/kubernetes
root@k8s-master01:/etc/kubernetes# mkdir usercerts
root@k8s-master01:/etc/kubernetes# cd usercerts/

# 创建一个私钥
root@k8s-master01:/etc/kubernetes/usercerts# (umask 077; openssl genrsa -out darius.key 2048)
Generating RSA private...

Read more

KubeConfig配置文件介绍


k8s在部署完毕以后一定会复制一个配置文件/etc/kubernetes/admin.conf,此文件中保存了当前API-Server中一个管理员账号的用户名、密码等相关信息。此文件有特定组织格式的文件。

/etc/kubernetes目录下的所有conf文件都有类似的格式,只不过他们都是被k8s上不同的组件所使用的。

root@k8s-master01:~# ls /etc/kubernetes/
admin.conf  controller-manager.conf  kubelet.conf  manifests  pki  scheduler.conf

这些文件是为了让客...

Read more

K8S之Helm部署Prometheus


概述

  • 本文采用helm安装Prometheus+Grafana
  • 配置alertmanager及告警规则实现邮件报警。
  • 其中所采用的helm仓库及chart包如下所示:
# helm仓库
grafana: https://grafana.github.io/helm-charts
prometheus-community: https://prometheus-community.github.io/helm-charts

# chart包
grafana/grafana
prometheus-community/prometheus

准备工作

安装helm

  • 项目地址:http...

Read more

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

在 Kubernetes 中,StorageClass 是用于定义不同类型的存储卷的资源对象。通过 StorageClass,用户可以定义存储的类型、访问模式、回收策略等,使得 Kubernetes 能够动态地配置和分配存储资源。StorageClass 使得集群管理员可以根据应用程序的需求,灵活地配置和分配存储资源,而无需为每个 PersistentVolume 手动定义存储配置。

主要用途

  1. 动态存储配置:允许 Kubernetes 自动创建和配置存储卷,而不需要手动创建 PersistentVolume
  2. 存储类型管理:定义不同类型的存储(如 NFS、Ce...

Read more

PDB-Pod中断保持


PDB

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

主要用途

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

关键概念

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

Read more