Docker-镜像优化
Docker-镜像优化BackGroundDocker如果最后的镜像很大,所以是需要优化的。 安装不必要的软件包会增加攻击面,从而增加安全风险。 镜像传输需要更多时间。 部署大镜像需要更多时间。 优化方法优化一:合并RUN 原始Docker 1234567891011121314FROM hub.c.163.com/netease_comb/centos:7 MAINTAINER netease ...
DevOps-Argo安装
DevOps-Argo安装What is argoArgo Workflows 是一个开源的云原生工作流引擎,用于在 Kubernetes 上编排并行作业。Argo 工作流作为Kubernetes CRD 实现。 定义工作流,其中工作流中的每个步骤都是一个容器。 将多步骤工作流建模为一系列任务,或使用 DAG 来捕获任务之间的依赖关系图。 使用 Argo 可以在很短的时间内在 Kubernetes 上轻松运行机器学习或数据处理的计算密集型作业 一句话描述:ArgoWorkflow 是一个用于在 Kubernetes 上编排并行作业的开源云原生工作流引擎 commpoentsArgoWorkflow 组件比较少,整体架构比较简单。 核心组件: argo-server:为工作流提供 API 和 UI 界面。 workflow-controller:真正干活的组件,解析用户创建的 CR 对象并启动 Pod 来真正运行流水线 Deploy Helm安装 12345678910# 添加参考并更新helm repo add argo https://argoproj.github....
K8s-List-watch机制
K8s-List-watch机制BackGround在 Kubernetes 中,有5个主要的组件,分别是 master 节点上的 kube-api-server、kube-controller-manager 和 kube-scheduler,node 节点上的 kubelet 和kube-proxy 。这其中 kube-apiserver 是对外和对内提供资源的声明式 API 的组件,其它4个组件都需要和它交互。为了保证消息的实时性,有两种方式: 客户端组件 (kubelet, scheduler, controller-manager 等) 轮询 apiserver apiserver 通知客户端 为了降低kube-apiserver的压力,就是通过list-watch机制。其实list-watch就是client监听K8s资源变化 list-watach 机制需要满足以下需求: 实时性 (即数据变化时,相关组件越快感知越好) 保证消息的顺序性 (即消息要按发生先后顺序送达目的组件。很难想象在Pod创建消息前收到该Pod删除消息时组件应该怎么处理) 保证消息不丢失或者...
Prometheus-接入ETCD监控
Prometheus-接入ETCD监控Introduce通过Prometheus监控ETCD数据,包括Grafana Overview1234567# 通过2379 获取指标curl http://<hostip>:2379/metrics# 开启tls认证的etcdcerts=/etc/kubernetes/pki/etcd/curl --cacert $certs/ca.crt --cert $certs/peer.crt --key $certs/peer.key https://<hostip>:2379/metrics Etcd 中的指标可以分为三大类: Server Disk Netwrok Server以下指标前缀为 etcd_server_。 has_leader:集群是否存在 Leader 没有的话集群不可以 leader_changes_seen_total:leader 切换数 比较多的话说明集群不稳定 proposals_committed_total:已提交提案数 如果 member 和 leader 差距较大,说...
Grafana-整合日志查询Loki
Grafana-整合日志查询LokiIntroduce为Grafana添加日志指标 flubit-bitFluent Bit:Fluent Bit 是一个轻量级的日志收集器和处理器。它设计用于从各种来源(如应用程序、容器、操作系统等)收集日志数据,并将其发送到不同的目标。Fluent Bit 可以将日志数据发送到多种目标,包括存储系统、消息队列和分析工具等。它提供了灵活的插件机制,可用于解析、过滤和转换日志数据 LokiLoki 是一个开源的日志聚合系统,专门用于处理和查询大规模分布式日志数据。它是由 Grafana Labs 开发的,作为 Grafana 生态系统的一部分。Loki 使用了 Prometheus 的标签索引和查询语言,可以高效地存储和查询日志数据。Loki 的设计目标是可扩展性和低资源消耗,适用于云原生环境 123456# 1. 添加Helm仓库helm repo add grafana https://grafana.github.io/helm-charts# *2. 拉取本地Helm文件helm pull grafana/loki-stack# 3. he...
Raft 算法概述
Raft 算法概述What is RaftRaft 协议是一种共识算法(consensus algorithm) 简单来说,其实就是大家投票,超过半数,通过✅ 为什么需要 Raft ? 回答该问题之前可以思考一下另一个问题:为什么需要共识算法? 为了解决单点问题,软件系统工程师引入了数据复制技术,实现多副本。而多副本间的数据复制就会出现一致性问题。所以需要共识算法来解决该问题。 共识算法的祖师爷是 Paxos, 但是由于它过于复杂,难于理解,工程实践上也较难落地,导致在工程界落地较慢。 Raft 算法正是为了可理解性、易实现而诞生的 概述Raft给服务器设置了三种状态,分别是领导者(leader)、跟随者(follower)和候选者(candidate)。跟随者通过投票选出领导者,只有得到“大多数”跟随者投票的服务器能成为领导者;领导者负责将命令同步给跟随者,只有被“大多数”跟随者确认的命令才能提交。 raft 会先选举出 leader,leader 完全负责 replicated log 的管理。leader 负责接受所有客户端更新请求,然后复制到 follower 节点,并...
Grafana-嵌入前端
Grafana-嵌入前端IntroduceGrafana能展示好看的图表,但是前端不能直接展示 Quick Startiframe模式演示使用prometheus中的grafana,K8s部署 添加配grafana置项 123456# 允许嵌入[security] allow_embedding = true # 允许匿名登入[auth.anonymous] ...






