2 使用Helm
2 使用Helm Helm 提供了一个名为 helm 的命令行工具,它提供了使用 Helm chart 所需的所有特性。在本章中,我们将探索helm客户端的主要特性,并了解 Helm 如何与Kubernetes 交互。 我们将从了解如何安装和配置 Helm 开始,并通过 Helm 中的主要命令组进行工作。然后我们将介绍如何查找和学习软件包,以及如何…
1 Helm 介绍
1 Helm 介绍 其实在我们 K8S 中有一个包管理工具。主要解决了安装服务的问题,其实很好理解对于我们的 K8S 中包管理工具他叫做 helm,helm 可以通过一个仓库去下载我们需要安装服务的一些 yaml文件,因为在 K8S 中所有的资源都是通过 yaml 文件来进行创建的,我们去修改这些 yaml 文件的属性就可以安装出来我想去对应安装的…
istio 系列:4 配置并使用 Envoy
[TOC] 2 配置并使用 Envoy 当然配置和使用 envoy 的话可能我们有多种方式,envoy 本身通过 C++ 语言编写,而且新版的 C++ 编译环境已经不在是通过 make 编译。 如果说我需要使用 envoy 来测试的话、我们可以直接使用二进制版本或者说已经打包好的镜像。 这里我通过 docker-compose 的方式运行 envo…
istio 系列:3 envoy 原理基础
[TOC] 1 envoy 原理基础 envoy 是服务网格的非常重要的数据平面,而控制层面的实现则是 istio ,所以我们这里先从数据平面的这一步来慢慢了解云原生的服务网格,所有在本文中会讲到 什么是Envoy Envoy 组件拓扑 Envoy xDS 核心术语 Envoy的部署类型 Enovy线程模型和连接处理机制 Envoy核心配置组件 L…
istio:2 服务网格基础概念
[TOC] 服务网格基础 我们这部分的内容大概有以下几个内容: 微服务的出现及治理方式演进 程序架构风格与微服务 单体架构 分布式架构:SOA、MSA 这两个为比较主流的微服务架构 分布式架构治理模式演进 ESB → Microservices → Cloud Native 服务网格的迭代 微服务基础 康威定律 微服务及其生态系统 服务网格 基本功…
client-go:7 Informer 中的 reflector 源码分析
本文主要对 Informer 中的 Reflector 组件进行分析说明。 前面我们说了 Informer 通过对 APIServer 的资源对象执行 List 和 Watch 操作,把获取到的数据存储在本地的缓存中,其中实现这个的核心功能就是 Reflector,我们可以称其为反射器,从名字我们可以看出来它的主要功能就是反射,就是将 Etcd 里…
client-go:6 informer 架构说明
上图是整个 client-go 的完整架构图,或者说是我们要去实现一个自定义的控制器的一个整体流程,其中黄色图标是开发者需要自行开发的部分,而其它的部分是 client-go 已经提供的,直接使用即可。 由于 client-go 实现非常复杂,我们这里先对上图中最核心的部分 Informer 进行说明。在 Informer 的架构中包含如下几个核心…
Prometheus:监控 K8S 集群内部 ETCD
这里的环境为 Prometheus 是外部部署,而 etcd 是部署在 K8S 集群内部,从而实现对他监控 每个 etcd 服务器都/metrics在其客户端端口路径下导出指标。 11.1 ETCD 自带 metrics 验证 如果我们的 etcd 是部署在集群内部就需要通过证书认证的方式才能够拿到对应的监控指标 1.查看监控接口是否能够正常使用 …
client-go:5 Informer 使用
5 Informer 使用 前面我们在使用 Clientset 的时候了解到我们可以使用 Clientset 来获取所有的原生资源对象,那么如果我们想要去一直获取集群的资源对象数据呢?岂不是需要用一个轮询去不断执行 List() 操作?这显然是不合理的,实际上除了常用的 CRUD 操作之外,我们还可以进行 Watch 操作,可以监听资源对象的增、删…
Prometheus:实现分组告警
9 分组告警 真实的场景中,我们往往期望可以给告警设置级别,而且可以实现不同的报警级别可以由不同的receiver接收告警消息。Alertmanager中路由负责对告警信息进行分组匹配,并向告警接收器发送通知。以下为本次需要实现的目的 1、添加两个不同的告警级别的告警规则 当节点服务器 cpu15 分钟负载低于1时,发生告警,告警级别 normal…