自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(844)
  • 论坛 (1)
  • 收藏
  • 关注

转载 Helm 从入门到实践 | 从 0 开始制作一个 Helm Charts

如何制作自己的 Helm Charts我们平时在日常生活中会经常在不同的平台上与各种各样的应用打交道,比如从苹果的 App Store 里下载的淘宝、高德、支付宝等应用,或者是在 PC 端安装的Word、Photoshop、Steam。这些各类平台上的应用程序,对用户而言,大多只需要点击安装就可使用。然而,在云(Kubernetes)上,部署一个应用往往却不是那么简单。如果想要部署一个应用程序到云上,首先要准备好它所需要的环境,打包成 Docker 镜像。进而把镜像放在部署文件(Deployme..

2021-01-27 16:43:40 11

原创 Prometheus 配置文件介绍

Prometheus通过命令行标志和配置文件进行配置。虽然命令行标志配置了不可变的系统参数(例如存储位置,保留在磁盘和内存中的数据量等),但配置文件定义了与抓取作业及其实例相关的所有内容,以及哪些规则文件加载。要查看所有可用的命令行标志,请运行./prometheus -h。Prometheus可以在运行时重新加载其配置。如果新配置格式不正确,则不会应用更改。通过向Prometheus进程发送SIGHUP信号或使用HTTP 发送reload的POST请求命令发送(--web.enable-life...

2021-01-27 11:56:20 9

原创 Prometheus 基于文件的服务发现 file_sd_configs

通过自动化的手段将被监控端监控起来,之前是每次都在普罗米修斯的配置文件里面写要监控谁,然后重载一下就生效了。最后就可以在普罗米修斯图形界面这里看到其配置了如果被监控端的数据量很大的话,每次修改配置文件很复杂也容易出错。自动化的目的就是将预期的被监控端自动的加入监控。不需要人工干预这件事Prometheus服务发现Prometheus添加被监控端支持两种方式:• 静态配置:手动配置手动的在配置文件里面添加• 服务发现:动态发现需要监控的Target实例最常用的就是consul...

2021-01-27 11:37:35 9

转载 云原生存储详解:容器存储与 K8s 存储卷

云原生存储的两个关键领域: Docker 存储卷:容器服务在单节点的存储组织形式,关注数据存储、容器运行时的相关技术; K8s 存储卷:关注容器集群的存储编排,从应用使用存储的角度关注存储服务。 Docker 存储容器服务之所以如此流行,一大优势即来自于运行容器时容器镜像的组织形式。容器通过复用容器镜像的技术,实现在相同节点上多个容器共享一个镜像资源(更细一点说是共享某一个镜像层),避免了每次启动容器时都拷贝、加载镜像文件,这种方式既节省了主机的存储空间,又提高了容器启动效率。.

2021-01-26 09:42:56 14

转载 Prometheus 详解Node Export

监控节点 Prometheus使用exporter工具来暴露主机和应用程序上的指标,目前有很多可用于各种目的的exporter[1]。现在我们将专注于一个特定的exporter:Node Exporter[2]。它是用Go语言编写的,提供了一个可用于收集各种主机指标数据(包括CPU、内存和磁盘)的库。它还有一个textfile收集器,允许你导出静态指标,我们很快就会看到这对发送有关节点的信息很有帮助,此外它还可以从批处理作业导出指标。我们有时会使用术语“节点”来指代主机。 首先选择其中一

2021-01-25 16:18:30 15

原创 Prometheus Node Export 基于用户名密码访问

Export采集指标的地址谁都可以访问,这里可以使用基础认证使用用户名密码方式去采集被监控端,也就是访问接口使用用户名密码提高安全性在被监控端这里这个配置文件里面是要访问我暴露的指标需要的用户名密码用户名和密码,密码是采用了一定的加密方式的,而不是写明文生成密码[root@localhost ~]# yum install httpd-tools –y下面就是输入123456之后加密的密码,将这个密码保存在配置文件当中[root@localhost ~]# htpass.

2021-01-25 11:30:06 35

原创 Prometheus Node Export监控Linux主机

如何监控服务?如果要想监控,前提是能获取被监控端指标数据,并且这个 数据格式必须遵循Prometheus数据模型,这样才能识别和 采集,一般使用exporter提供监控指标数据。exporter列表:https://prometheus.io/docs/instrumenting/exporters监控mysql需要安装mysql exporter这个组件,这个组件会连接mysql,从mysq获取到想监控的指标当你知道要监控哪些服务,那么需要准备相应的exporter组件,准备好之后

2021-01-25 11:14:21 26

原创 Prometheus 监控工具详细介绍与安装

Prometheus 监控工具介绍Prometheus是一个最初在SoundCloud上构建的开源系统监视和警报工具包。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有一个非常活跃的开发人员和用户社区。它现在是一个独立的开源项目,可以独立于任何公司进行维护。为了强调这一点,并澄清项目的治理结构,Prometheus 于2016年加入 云计算本地计算基金会,作为继Kubernetes之后的第二个托管项目。https://prometheus.iohttps://git

2021-01-22 10:41:49 50

转载 etcd的前世今生:为什么Kubernetes使用etcd?

2013 年,有一个叫 CoreOS 的创业团队,他们构建了一个产品,Container Linux,它是一个开源、轻量级的操作系统,侧重自动化、快速部署应用服务,并要求应用程序都在容器中运行,同时提供集群化的管理方案,用户管理服务就像单机一样方便。他们希望在重启任意一节点的时候,用户的服务不会因此而宕机,导致无法提供服务,因此需要运行多个副本。但是多个副本之间如何协调,如何避免变更的时候所有副本不可用呢?为了解决这个问题,CoreOS 团队需要一个协调服务来存储服务配置信息、提供分布式锁等能力。怎

2021-01-22 09:42:26 17

转载 Kubernetes 的架构为什么是这样的?

Kubernetes 的组件(Master)Kubernetes 的控制面包含着 kube-apiserver、kube-scheduler、kube-controller-manager 这三大组件,我们也称为 Kubernetes 的三大件。下面我们逐一来讲一下它们的功能及作用。首先来看 kube-apiserver它是整个 Kubernetes 集群的“灵魂”,是信息的汇聚中枢,提供了所有内部和外部的 API 请求操作的唯一入口。 同时也负责整个集群的认证、授权、访问控制、服务发现等能力

2021-01-22 09:26:34 20

转载 Redis 删除数据后,为什么内存占用率还是很高?

在使用 Redis 时,我们经常会遇到这样一个问题:明明做了数据删除,数据量已经不大了,为什么使用 top 命令查看时,还会发现 Redis 占用了很多内存呢?实际上,这是因为,当数据删除后,Redis 释放的内存空间会由内存分配器管理,并不会立即返回给操作系统。所以,操作系统仍然会记录着给 Redis 分配了大量内存。但是,这往往会伴随一个潜在的风险点:Redis 释放的内存空间可能并不是连续的,那么,这些不连续的内存空间很有可能处于一种闲置的状态。这就会导致一个问题:虽然有空闲空间,Redis

2021-01-21 09:41:35 15

转载 Docker 文件存储驱动:AUFS 文件系统原理及生产环境的最佳配置

我们知道,Docker 主要是基于 Namespace、cgroups 和联合文件系统这三大核心技术实现的。那么你知道联合文件系统是什么吗?它的原理又是什么呢?首先我们来了解一下什么是联合文件系统。什么是联合文件系统联合文件系统(Union File System,Unionfs)是一种分层的轻量级文件系统,它可以把多个目录内容联合挂载到同一目录下,从而形成一个单一的文件系统,这种特性可以让使用者像是使用一个目录一样使用联合文件系统。那联合文件系统对于 Docker 是一个怎样的存在呢?它.

2021-01-20 22:11:39 15

原创 Kubernetes 集群权限管理RBAC

你已经学会了使用kubectl命令行,或者直接发送 REST 请求,以及使用各种语言的 client 库来跟 APIServer 进行交互。那么你是否知道在这其中Kubernetes 是如何对这些请求进行认证、授权的呢?这节课,我们就来一探究竟。任何请求访问 Kubernetes 的 kube-apiserver 时,都要依次经历三个阶段:认证(Authentication,有时简写成 AuthN)、授权(Authorization,有时简写成 AuthZ)和准入控制(Admission Contr..

2021-01-20 21:09:15 26

原创 ELK 日志采集增加数据缓冲队列 redis

ELFK架构优化思路在日志类的场景当中建议引入消息队列中间件作为缓冲层对数据进行缓冲(指标分析/日志分析),使用Redis作为消息队列,起到数据缓冲作用,也就是峰值处理能力Logfile ->filebeat阶段是不太可能丢数据的 Filebeat ->logstash 随着机器的增加,filebeat越来越多,logstash负载变大可能会丢失数据或者卡住(因为处理不过来),这样就可以增加数据的缓冲队列来进行去优化。 在filebeat和logstash之间加上可持久.

2021-01-20 11:30:34 29

原创 关于redis的keys命令的性能问题

KEYS pattern查找所有符合给定模式pattern的key。KEYS*匹配数据库中所有key。KEYSh?llo匹配hello,hallo和hxllo等。KEYSh*llo匹配hllo和heeeeello等。KEYSh[ae]llo匹配hello和hallo,但不匹配hillo实际应用中有时候会出现需要遍历redis中的所有键值的需求,比如清理没用的键等等。但是keys这个命令性能真的很差,redis官方文档是这么说...

2021-01-20 10:37:43 30

转载 数据存储:剖析 Docker 卷与持久化数据存储的底层原理

上一课时我介绍了 Docker 网络实现,为我们的容器插上了网线。这一课时我将介绍 Docker 的卷,为我们的容器插上磁盘,实现容器数据的持久化。为什么容器需要持久化存储容器按照业务类型,总体可以分为两类:无状态的(数据不需要被持久化)有状态的(数据需要被持久化)显然,容器更擅长无状态应用。因为未持久化数据的容器根目录的生命周期与容器的生命周期一样,容器文件系统的本质是在镜像层上面创建的读写层,运行中的容器对任何文件的修改都存在于该读写层,当容器被删除时,容器中的读写层也会随之消.

2021-01-19 20:46:05 24

原创 Kubernetes RBAC

在开启了 TLS 的集群中,每当与集群交互的时候少不了的是身份认证,使用 kubeconfig(即证书) 和 token 两种认证方式是最简单也最通用的认证方式。以kubectl为例介绍kubeconfig的配置。kubectl只是个go编写的可执行程序,只要为kubectl配置合适的kubeconfig,就可以在集群中的任意节点使用。kubectl默认会从$HOME/.kube目录下查找文件名为config的文件,也可以通过设置环境变量KUBECONFIG或者通过设置--kubeconfig...

2021-01-19 16:44:02 108

转载 AprEndpoint组件:Tomcat APR提高I/O性能的秘密

我们在使用 Tomcat 时,会在启动日志里看到这样的提示信息:The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: ***这句话的意思就是推荐你去安装 APR 库,可以提高系统性能。那什么是 APR 呢?APR(Apache Portable Runtime L.

2021-01-19 10:35:12 18

原创 Kubernetes RBAC 为指定用户授权访问不同命名空间权限

在开启了 TLS 的集群中,每当与集群交互的时候少不了的是身份认证,使用 kubeconfig(即证书) 和 token 两种认证方式是最简单也最通用的认证方式。以kubectl为例介绍kubeconfig的配置。kubectl只是个go编写的可执行程序,只要为kubectl配置合适的kubeconfig,就可以在集群中的任意节点使用。kubectl默认会从$HOME/.kube目录下查找文件名为config的文件,也可以通过设置环境变量KUBECONFIG或者通过设置--kubeconfig...

2021-01-18 17:32:43 109

原创 ELK filebeat收集java堆日志

收集Java堆栈日志一般来说日志的每一行就代表一个完整的请求nginx,但是有些日志是多行的java堆栈日志。多行日志代表了一个事务,如果让elk来处理会认为有四个文档一般应用记录的日志,每行表示一个事务,但有些日志是多行表示一个事务。例如,常见的Java堆栈日志:Exception in thread "main" java.lang.NullPointerException at com.example.myproject.Book.getTitle(Book.java

2021-01-18 10:42:34 22

转载 Kubernetes配置管理:Kubernetes 管理业务配置方式有哪些? configmap|secret

在使用过程中,我们常常需要对 Pod 进行一些配置管理,比如参数配置文件怎么使用,敏感数据怎么保存传递,等等。有些人可能会觉得,为什么不把这些配置(不限于参数、配置文件、密钥等)打包到镜像中去啊?乍一听,好像有点可行,但是这种做法“硬伤”太多。有些不变的配置是可以打包到镜像中的,那可变的配置呢? 信息泄漏,很容易引发安全风险,尤其是一些敏感信息,比如密码、密钥等。 每次配置更新后,都要重新打包一次,升级应用。镜像版本过多,也给镜像管理和镜像中心存储带来很大的负担。 定制化太严重,可扩展能力差,且不

2021-01-15 11:41:36 19

翻译 ELK Logstash性能故障排除

Performance TroubleshootingYou can use these troubleshooting tips to quickly diagnose and resolve Logstash performance problems. Advanced knowledge of pipeline internals is not required to understand this guide. However, thepipeline documentationis rec..

2021-01-15 11:17:26 27

原创 JVM的Xms和Xmx参数设置为相同值有什么好处?

最近正在重新学习JVM的内存结构及相关优化内容,无意中看到IDEA的VM配置(安装时默认配置)中有如下的配置:# custom IntelliJ IDEA VM options-Xms2048m-Xmx2048m看到Xms和Xmx的一样,是不是稍微有些奇怪?这里就写篇文章分析一下,JVM的Xms和Xmx参数设置为相同的值有什么好处?首先来了解一下相关参数的概念及功能。-Xms: 指定虚拟机堆内存初始值大小 -Xmx:指定虚拟机堆内存最大值大小Xms和Xmx参数定义在启动J..

2021-01-15 10:39:22 92

原创 Kubernetes PV 动态供给(StorageClass)

PV静态供给明显的缺点是维护成本太高了!因此,K8s开始支持PV动态供给,使用StorageClass对象实现。Storgess帮你创建pvc,只需要在pvc里面定义使用哪个storgeclass,storgess可以标志使用什么存储比如nfs ceph。并不是所有存储支持storgess,有的需要插件支持动态供给的存储插件:https://kubernetes.io/docs/concepts/storage/storage-classes/PV 动态供给(Stora...

2021-01-14 16:15:35 23

翻译 ELK logstash配置示例

Logstash Configuration ExamplesThe following examples illustrate how you can configure Logstash to filter events, process Apache logs and syslog messages, and use conditionals to control what events are processed by a filter or output.If you need h.

2021-01-14 11:56:37 37

转载 ELK 吃透Elasticsearch 堆内存

1、什么是堆内存?Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。在 Java 中,堆被划分成两个不同的区域: 新生代 ( Young )、 老年代 ( Old )。 新生代 ( Young ) 又被划分为三个区域 Eden、 From Survivor、 To Survivor。 这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。2、堆内存的作用是什么?在虚..

2021-01-14 10:52:08 44

转载 深入JVM即时编译器JIT,优化Java编译

说到编译,我猜你一定会想到 .java 文件被编译成 .class 文件的过程,这个编译我们一般称为前端编译。Java 的编译和运行过程非常复杂,除了前端编译,还有运行时编译。由于机器无法直接运行 Java 生成的字节码,所以在运行时,JIT 或解释器会将字节码转换成机器码,这个过程就叫运行时编译。类文件在运行时被进一步编译,它们可以变成高度优化的机器代码,由于 C/C++ 编译器的所有优化都是在编译期间完成的,运行期间的性能监控仅作为基础的优化措施则无法进行,例如,调用频率预测、分支频率预测、裁剪未被

2021-01-14 09:54:52 20

转载 K8s 调度系统由浅入深系列:简介

一、调度简介在开始前,先来看看Kubernetes的架构示意图,其中控制平面包含以下三大组件:kube-scheduler、kube-apiserver、kube-controller-manager。kubelet及kube-proxy组件的分析我们后续单独成章进行讲解,现在我们可以简单给理解上述组件的难易程度排个序,kube-apiserver、kubelet、kube-scheduler、kube-controller-manager、kube-proxy。如上所述,kube-sc...

2021-01-12 16:11:39 80

原创 ELK kibana可视化图表和仪表盘

Kibana可视化和仪表盘Kibana可视化(Visualize):基于ES查询,通过一系列聚合来提取和处理数据,将结果进行图表展示。另外,在创建图表需选择一个索引模式。(先要创建索引,是基于哪个索引)比较常用图表:• 指标• 折线图• 饼图• 数据表指标指标根据单个进行统计,比如统计日志次数,统计指定时间内该索引模式下日志的次数,,这个不需要特殊的配置(在es当中一个文档就是一个记录)折线图也称为趋势图,这里需要添加x轴基于哪个...

2021-01-12 11:28:31 60

原创 Kubernetes 数据卷:NFS

NFS存储NFS即网络文件系统Network File System,它是一种分布式文件系统协议,最初是由Sun MicroSystems公司开发的类Unix操作系统之上的一款经典网络存储方案,其功能是在允许客户端主机可以像访问本地存储一样通过网络访问服务端文件。Kubernetes的NFS存储用于将某事先存在的NFS服务器导出export的存储空间挂载到Pod中来供Pod容器使用。与emptyDir不同的是,NFS存储在Pod对象终止后仅是被卸载而非删除。另外,NFS是文件系统及共享服务,它支持同

2021-01-11 16:59:24 22

转载 网络模型:剖析 Docker 网络实现及 Libnetwork 底层原理

Linux 的 Namespace 和 Cgroups 技术,利用这两项技术可以实现各种资源的隔离和主机资源的限制,让我们的容器可以像一台虚拟机一样。但这时我们的容器就像一台未联网的电脑,不能被外部访问到,也不能主动与外部通信,这样的容器只能做一些离线的处理任务,无法通过外部访问。所以今天这一讲,我将介绍 Docker 网络相关的知识,使 Docker 容器接通网络。容器网络发展史提起 Docker 网络,我们不得不从容器战争说起。Docker 从 2013 年诞生,到后来逐渐成为了容器的代名.

2021-01-08 16:47:28 22

转载 全网最详细的 K8s Service 不能访问排查流程

对于新安装的 Kubernetes,经常出现的一个问题是Service没有正常工作。如果您已经运行了Deployment并创建了一个Service,但是当您尝试访问它时没有得到响应,希望这份文档能帮助您找出问题所在。先来熟悉下Service工作逻辑:为了完成本次演练的目的,我们先运行几个Pod。$ kubectl run hostnames --image=k8s.gcr.io/serve_hostname \ --labels=a...

2021-01-07 20:30:04 53

原创 Kubernetes Secret存储敏感数据

Secret与ConfigMap类似,区别在于Secret主要存储敏感数据,所有的数据要经过base64编码。 应用场景:凭据 kubectl create secret 支持三种数据类型: docker-registry(kubernetes.io/dockerconfigjson):存储镜像仓库认证信息 generic(Opaque):存储密码、密钥等 tls(kubernetes.io/tls):存储TLS证书[root@k8s-master ~]# kubectl cr.

2021-01-07 20:16:32 22

转载 ELK 配置你的logstash

Structure of a Config FileA Logstash config file has a separate section for each type of plugin you want to add to the event processing pipeline. For example:# This is a comment. You should use comments to describe# parts of your configuration.input

2021-01-07 14:19:57 12

原创 ELK logstash json对你的nginx进行解码

收集Nginx访问日志将Nginx访问日志格式改为JSONlog_format json '{ "@timestamp": "$time_iso8601", ''"remote_addr": "$remote_addr", ''"remote_user": "$remote_user", ''"body_bytes_sent": "$body_bytes_sent", ''"request_time": "$request_time", ''"status": "$status",

2021-01-07 11:53:49 10

原创 Kubernetes ConfigMap对应用程序配置

管理应用程序配置(configmap)创建ConfigMap后,数据实际会存储在K8s中Etcd,然后通过创建Pod时引用该数据。 应用场景:应用程序配置 Pod使用configmap数据有两种方式: • 变量注入 • 数据卷挂载[root@k8s-master ~]# cat configmap.yml apiVersion: v1kind: ConfigMapmetadata: name: app-configdata: abc: "123" cde:

2021-01-06 17:24:35 16

原创 ELK 过滤插件grok对nginx日志格式化

默认nginx的访问日志是没有格式的,日志格式如下log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';访问日志格式如下:要想结构化处理,..

2021-01-06 11:18:45 29

转载 组件组成:剖析 Docker 组件作用及其底层工作原理

我简单介绍了 Docker 架构的形成,相信你已经对 Docker 的架构有了一个整体的认知。这一讲我将带你深入剖析 Docker 的各个组件的作用及其底层的实现原理。首先我们来回顾一下 Docker 的组件构成。Docker 的组件构成Docker 整体架构采用 C/S(客户端 / 服务器)模式,主要由客户端和服务端两大部分组成。客户端负责发送操作指令,服务端负责接收和处理指令。客户端和服务端通信有多种方式,即可以在同一台机器上通过UNIX套接字通信,也可以通过网络连接远程通信。.

2021-01-05 20:26:22 23

原创 Kubernetes Ingress 个性化配置以及Ingress Controller

Ingress:个性化配置[root@k8s-master ~]# cat ingress-annotations.yaml apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: annotation-test annotations: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/proxy-connec.

2021-01-05 17:24:33 45

翻译 ELK logstash是如何工作的?

How Logstash WorksThe Logstash event processing pipeline has three stages: inputs → filters → outputs. Inputs generate events, filters modify them, and outputs ship them elsewhere. Inputs and outputs support codecs that enable you to encode or decode the

2021-01-05 11:53:42 23

空空如也

Waterloo Bridge.的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除