三、硬币抛向空中就是答案
a734395bb5e3bb0e5a1772f7728951a8c659e0bc6e7ea7436fb016f0a00948e99da32f190b4fcd165120261e9325bde226ab17b8aaae8cb0956feb75004c508fc53d5c148397c435ee3873da22ebeeac279fa4af5b3781e31d2f7f27b4f2ed2f5f7c58c24843b51d098fc9a99478beeda7a10091075a41fccd74a981e901e4f7a48406a7427257ed7e133e971d616b5a598e79cb610ea85b51307206bd097429f71ca6c6e22b1c8aacf713c08672e2b8dd7ff28b2da98e94634e6a9f030f50c56aa26eaf6ef69ad873288d1a5adffadea10746e255e7c2c7a958cf72bb6774bbbde934e1c27ed2a7642487b7e1fe8ca310fdce07be4452151 ...
Docker-镜像优化
Docker-镜像优化BackGroundDocker如果最后的镜像很大,所以是需要优化的。
安装不必要的软件包会增加攻击面,从而增加安全风险。
镜像传输需要更多时间。
部署大镜像需要更多时间。
优化方法优化一:合并RUN
原始Docker
FROM 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安装
# 添加参考并更新helm repo add argo https://argoproj.github.io/argo-helm# ...
二、失败才是人生的主旋律
a734395bb5e3bb0e5a1772f7728951a8c659e0bc6e7ea7436fb016f0a00948e9a08c29bd58821a59cdd982b636361c8d45c06f3d29a005a22b986a1da5c3f4402ce299a338cbc71c3aad5a116dedc562b9ddb83366ab54499d80e3239e6b7cf204f4ae9c9a2fb64bfd5a34de8049b8b348e9dccf37f825a71c4f12744f450ef827355d399bc20ee04951cb35f140960a3ff7ab6d788da68084d298eb4b0e027f091011b96308247d581514dfc89a10efd03775aae2b5603b3f227bb656ab41d58756ec20fb411200d758855d31591e8f879a3aaa0a3c15423a070ee0d872489733d641a460aaeb219daaef1233d9ecd4cb03f2ee110c678bd ...
一、迷茫:理想
a734395bb5e3bb0e5a1772f7728951a8c659e0bc6e7ea7436fb016f0a00948e9c83538e70a63bfbf2b0d45e85c1214c307bb182960defe44d59fffcf7d825bff59f73f25cc26477ab0b069f0bd2e815be9ef4ba06dab51d3ca4e84d2d3d366a36232d892797de71ec1df4bbd864c7d40d71efdd0dfa10c551d14190d8cf0802ea3ddb4417e2d70cfb0b479b8efab69df16bee40034c8684b7bc41b977316c345248da21b69f417805a07f9b7d8984d5cd709e51d0d946e360e32ba54ef58792176c990ecdc8d71ab8bd5269d10f4c724e507da6e1d653214e92b1c1d96840a7a21237f9ebcb2f03e8dcb98ddc6d6209e0ae7a02566914a499 ...
序章:预兆
a734395bb5e3bb0e5a1772f7728951a8c659e0bc6e7ea7436fb016f0a00948e9ea862cd42a7e94f8c79ae539b7d07c126b26345d4a64cafe0b47cbaa5c05f3009c69c31a684cfeedd7b3dd8791a38999f94384f61a03670f7004f3c7ecaaae497b6e98c3353526e62cab43e6a25d434e2f5b6d6ad9ab47812488120953974f8f1d0acfa47cb85ae90353e097cb58ffe35d5479cf72dc8ea6b63f5a29add918b5a52698a92e29ed10019092fb5d25765b2fbec0932dd734b924af9f5cb2177a89100d6458500d09a28ad9aa87399dfa82281cce3288491c67e44320ec2d2bc27dde1209e29a5e5c0f3e9df4ffe44a79f09879b7f84387c0385 ...
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
Overview# 通过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 差距较大,说明 member 可 ...
Grafana-整合日志查询Loki
Grafana-整合日志查询LokiIntroduce为Grafana添加日志指标
flubit-bitFluent Bit:Fluent Bit 是一个轻量级的日志收集器和处理器。它设计用于从各种来源(如应用程序、容器、操作系统等)收集日志数据,并将其发送到不同的目标。Fluent Bit 可以将日志数据发送到多种目标,包括存储系统、消息队列和分析工具等。它提供了灵活的插件机制,可用于解析、过滤和转换日志数据
LokiLoki 是一个开源的日志聚合系统,专门用于处理和查询大规模分布式日志数据。它是由 Grafana Labs 开发的,作为 Grafana 生态系统的一部分。Loki 使用了 Prometheus 的标签索引和查询语言,可以高效地存储和查询日志数据。Loki 的设计目标是可扩展性和低资源消耗,适用于云原生环境
# 1. 添加Helm仓库helm repo add grafana https://grafana.github.io/helm-charts# *2. 拉取本地Helm文件helm pull grafana/loki-stack# 3. helm安装lokih ...
Raft 算法概述
Raft 算法概述What is RaftRaft 协议是一种共识算法(consensus algorithm)
简单来说,其实就是大家投票,超过半数,通过✅
为什么需要 Raft ?
回答该问题之前可以思考一下另一个问题:为什么需要共识算法?
为了解决单点问题,软件系统工程师引入了数据复制技术,实现多副本。而多副本间的数据复制就会出现一致性问题。所以需要共识算法来解决该问题。
共识算法的祖师爷是 Paxos, 但是由于它过于复杂,难于理解,工程实践上也较难落地,导致在工程界落地较慢。 Raft 算法正是为了可理解性、易实现而诞生的
概述Raft给服务器设置了三种状态,分别是领导者(leader)、跟随者(follower)和候选者(candidate)。跟随者通过投票选出领导者,只有得到“大多数”跟随者投票的服务器能成为领导者;领导者负责将命令同步给跟随者,只有被“大多数”跟随者确认的命令才能提交。
raft 会先选举出 leader,leader 完全负责 replicated log 的管理。leader 负责接受所有客户端更新请求,然后复制到 follower 节点,并在“安 ...