部署EFK pod日志分析系统


一、前言

image-20241220111132739

Kubernetes 中比较流行的日志收集解决方案是 Elasticsearch、Fluentd 和 Kibana(EFK)技术栈,也是官方现在比较推荐的一种方案。

1.1、主要组件功能

  1. Elasticsearch(ES):
    • 强大的搜索和查询能力:ES是一个分布式搜索和分析引擎,具有高效的搜索和查询功能。它可以处理大规模的数据,并且支持复杂的查询操作。
    • 可伸缩性和高可用性:可通过增加节点来扩展存储和吞吐量,并且自动进行数据分片和副本分配,以确保高可用性和容错性。
    • 实时数据分析:实时地索引和分析日志数据,可以快速地提供实时的分析结果和可视化。
  2. Fluentd:
    • 灵活的数据...

Read more

服务部署与迁移的步骤


一、服务部署与迁移的步骤

1.1 将应用封装进容器

应用容器化是部署与迁移的第一步,需要设计并规划好镜像的构建方案,由于Docker镜像分层的特性,通常建议使用分层方式进行Docker镜像构建。

操作系统层:制作公司常用的系统版本如CentOS、Ubuntu,可以在官方镜像的基础上添加自己需要的软件包。

运行环境层:在已经构建的操作系统层的基础上,把业务常用的运行环境都打包好,如JDK7、JDK8、JDK8+Tomcat8、Python2、Python3等通用模板。

应用层:在已经构建好了通用运行环境的基础上,根据应用再进行调整,然后将代码放进去即可。

1.2 将容器放入Pod中

应用容...

Read more

Kubernetes 证书介绍


一、证书机制说明

Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。API Server 是集群内部各个组件通信的中介,也是外部控制的入口。所以 Kubernetes 的安全机制基本就是围绕保护 API Server 来设计的,Kubernetes 使用了认证(Authentication)、鉴权(Authorization)、准入控制(AdmissionControl)三步来保证API Server的安全 。

二、证书认证(Authentication)

HTTP Token 认证:

通过一个 Token 来识别合法用户,HTTP Token 的认...

Read more

HPA


简介

HPA(Horizontal Pod Autoscaling) 可以根据 CPU 利用率自动伸缩一个 ReplicaSet 或 Deployment 中的 Pod 数量

我们知道,初始Pod的数量是可以设置的,同时业务也分流量高峰和低峰,那么怎么即能不过多的占用K8s的资源,又能在服务高峰时自动扩容pod的数量呢,在K8s上的答案是Horizontal Pod Autoscaling,简称HPA 自动水平伸缩,这里只以我们常用的CPU计算型服务来作为HPA的测试,这基本满足了大部分业务服务需求。

案例一

# 为deployment资源web创建hpa,pod数量上限3个,最低1...

Read more

Dashboard


Kubernetes Dashboard 是 Kubernetes 集群的基于 Web 的通用 UI。它允许用户管理在群集中运行的应用程序并对其进行故障排除,以及管理群集本身。

mkdir /opt/dashboard

cd /opt/dashboard

创建 kubernetes-dashboard.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-...

Read more

Kubernetes 网络概念


Kubernetes网络入门

一、为什么Kubernetes网络很重要?

想象Kubernetes集群是一个大型小区,里面有很多“快递仓库”(服务器节点),每个仓库里存放着许多“快递盒”(Pod),每个快递盒里装着不同的物品(容器)。
Kubernetes网络就像小区内的道路系统和快递配送规则,确保:

  • 快递盒(Pod)无论在哪个仓库,都能互相通信
  • 外部快递(外部请求)能准确找到目标快递盒
  • 快递盒地址变化时(如仓库搬迁),通信不受影响

二、核心概念:用“小区快递”类比理解

1. Pod:最小的“快递盒单元”

  • Pod是什么: 多个容器(如Web服务+配置工具)组成的“容器组”,...

Read more

搭建 Prometheus


一、Prometheus介绍

Prometheus(普罗米修斯)是一套开源的监控、报警、时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作。Google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。 ​Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,不...

Read more

K8S集群安全介绍


一、机制说明

Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。API Server 是集群内部各个组件通信的中介,也是外部控制的入口。所以 Kubernetes 的安全机制基本就是围绕保护 API Server 来设计的,Kubernetes 使用了认证(Authentication)、鉴权(Authorization)、准入控制(AdmissionControl)三步来保证API Server的安全 。

144.png

二、认证 Authentication

HTTP Token 认证:

通过一个 Token 来识别合法用户,HTTP Token 的认证是用一...

Read more

Helm


1.介绍

如果你曾经发现自己深陷 Kubernetes YAML 文件中——复制、粘贴和调整多个环境的配置——你已经体验到了许多人所说的“YAML 蔓延”。随着微服务的增加,每个微服务都有自己的 Deployment、Service、ConfigMaps 和 Ingress,手动管理这些清单变得容易出错、耗时且难以管理。

1.1 什么是Helm

每个成功的软件平台都有一个优秀的打包系统,比如Debian、Ubuntu的apt,Red Hat、CentOS的yum、Mac的brew。Helm则是Kubernetes上的包管理器,方便我们更好的管理应用。

1.2 为什么需要Helm

为什...

Read more

k8s认证、授权、准入控制概述


k8s 对我们整个系统的认证,授权,访问控制做了精密的设置;对于 k8s 集群来说, apiserver 是整个集群访问控制的唯一入口,我们在 k8s 集群之上部署应用程序的时候,也可以通过宿主机的 NodePort 暴露的端口访问里面的程序,用户访问 kubernetes 集群需要经历如下认证过程:认证->授权->准入控制(adminationcontroller)

  • 认证(Authenticating):对客户端的认证,通俗点就是用户名密码验证
  • 授权(Authorization):对资源的授权, k8s 中的资源无非是容器,最终其实就是容器的计算,网络,存储资源,当一...

Read more