作者文章归档:zuojie@88.com

Kubernetes授权机制之RBAC


在 Kubernetes 中,所有资源对象都是通过 API 进行操作,他们保存在 etcd 里。而对 etcd 的操作我们需要通过访问 kube-apiserver 来实现,上面的 Service Account 其实就是 APIServer 的认证过程,而授权的机制是通过 RBAC:基于角色的访问控制实现。

在Kubernetes(K8s)集群中,API Server就像“中央大门”,所有操作(比如查看Pod、部署应用、删除资源)都必须经过它。而RBAC(基于角色的访问控制)就是这扇大门的“智能门卫”——它不仅能识别“来访者”身份,还能精准管控“能进哪个区域”“能做什么事”,核心原...

Read more

Kubernetes自建账号及认证


在Kubernetes中,“自建账号”通常指管理员手动创建用于访问API Server的用户(区别于系统自动管理的Service Account)。Kubernetes的认证机制支持多种方式,最常用的包括客户端证书认证静态令牌认证。以下是详细的实现步骤和说明:

一、认证概述

Kubernetes API Server的访问流程分为三步:认证(Authentication)→ 授权(Authorization)→ 准入控制(Admission Control)
“自建账号”的核心是完成认证环节,即让API Server识别用户身份。认证通过后,还需通过RBAC(基于角色的访问控制)配置...

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持久化存储介绍

1.是什么

StorageClass又称为PV动态供给,是k8s1.4之后引入的一个新资源,主要实现了存储卷PV按需创建,动态创建。一旦有pvc资源,storageclass会自动创建pv

2.为什么用

以前静态的PV和PVC都需要手动来创建,因为pv和pvc一一对应,一个pv一旦被绑定就不会再被其他pvc绑定,因此当pvc逐渐增多,pv也会同比增加,这时候就需要自动创建pv,就要用到stroageclass

3.和pv、pvc关系

  • StorageClass创建的pvc,只要pvc不删除,即使控制器删除、pod删除重建还是会找到原来的pvc,...

Read more