Kubernetes:Pod总结(二)
承接上文。 在实际的生产使用场景中,直接用 Pod 是不合适的,因为必然会产生单点故障。因此,我们需要有一种方法来方便地创建、管理同一个服务的多个实例 Pod。Kubernetes 中引入了 Workload(工作负载) 的概念,它可以理解为 Pod 的父资源,主要的作用就是来管理多个 Pod 的生命周期。 Workload资源主要分为以下几类: Deployment 和 ReplicaSet :最常见的类型,用来管理集群上的无状态应用。 DaemonSet:在集群的每个节点上部署一个 Pod,适用于各种 agent 业务的场景。 such as a networking helper tool, or be part of an add-on. StatefulSet:适用于各种有状态服务的场景。 例如,如果负载会将数据作持久存储,可以运行一个 StatefulSet,将每个 Pod 与某个 PersistentVolume 对应起来。 Job 和 CronJob: 用于一些自动化任务。Job 用来表达的是一次性的任务,而 CronJob...
Kubernetes:Pod总结(一)
官方文档详尽介绍了Pod的概念。 概念 Pods are the smallest deployable units of computing that you can create and manage in Kubernetes. 简单来讲,Pod 是一组(也可以为一个)container 的集合,这些 container 一起调度,视为一个基本单元。 可以通过示例test-pod.yml,简单了解Pod: 1234567891011apiVersion: v1kind: Podmetadata: name: myapp-pod labels: app: myappspec: containers: - name: myapp-container image: busybox command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600'] 创建: 1kubectl create -f...
Zabbix 5.0:MySQL模板问题
Zabbix升级到5.0.17版本后,出现 mysql.db.size和mysql.replication.get_slave_status监控键值报错: 1Invalid parameters: "TLSConnect" cannot be passed as a key parameter. 原因分析查询ZABBIX BUGS AND ISSUES 问题与错误,找到类似问题,如下: Patch 12866d3f110 (26 Jul 2021) has introduced new MySQL connection parameters: TLS encryption. Thus items “mysql.db.size” and “mysql.replication.get_slave_status” now require 7 parameters, not 3 as it was before.Issue is “DB MySQL by agent 2” template was not patched to comply with...
Zabbix 5.0:监控阿里云 RDS
由于近期压测,需要频繁登录阿里云查看 RDS 监控,每次登录查看监控步骤较为繁琐,故将监控接入到 zabbix。 概述由于阿里云已做了 RDS 的监控,我们只需要通过阿里云 SDK 把这些监控数据传输到 zabbix 即可。 前提子账号使用阿里云 SDK 需要一个 AK,申请方式如下: 打开RAM 访问控制 (aliyun.com),创建子账号,选择 Open api 调用方式; 得到 AccessKey ID 和 AccessKey Secret; 添加 AliyunCloudMonitorReadOnlyAccess 权限; 环境 Python版本:Python3 SDK:aliyun-python-sdk-core、aliyun-python-sdk-cms 调用Api示例Api:DescribeMetricTop Namespace 为 acs_rds_dashboard。 Period 默认为60秒,也可以为60的整数倍。 当前RDS监控的 MetricName 和 Dimensions...
Nginx:进程调度
...
Tail Latency学习
翻译自Tail Latency Study (accelazh.github.io) Latency,中文译作延迟,Tail Latency即尾延迟。 实际生产中的Latency是一种(概率)分布,实际上被描述为百分位数。 延迟可以在 75% 百分位处翻倍,在 99% 之后高出 100 倍。 什么导致了尾延迟 磁盘老化。Disk just get slowdown time to time for no reason. The Tail at Store gives more in-depth analysis. Also, disks may degrade significantly when they get old. 超时。Failure tolerance and retry is a common design pattern in distributed systems. But one retry is enough to send current request to latency tail. Google SRE Book chapter 21 to...
Zabbix 5.0:监控Redis
使用zabbix 5.0自带模板和zabbix-agent2监控redis。 前提redis服务器需要部署zabbix-agent2。 配置监控 模板官方地址:Source of README.md - Zabbix - ZABBIX GIT zabbix-agent2已经集成了redis的监控插件,并且5.0版本也自带了相关模板,因此配置比较简单,直接关联即可。但如果redis配置了密码,需要针对模板做一下调整。 在模板中新增宏: 注意:如果需要监控非本地Redis,则需要修改模板中的{$REDIS.CONN.URI}。 同时在监控项中修改相关指标: 然后看下效果:
工程师的酒后真言
原文:Things I’ve learned as a Sr Engineer(访问需要梯子) 原文如下I’m drunk and I’ll probably regret this, but here’s a drunken rank of things I’ve learned as an engineer for the past 10 years. The best way I’ve advanced my career is by changing companies. Technology stacks don’t really matter because there are like 15 basic patterns of software engineering in my field that apply. I work in data so it’s not going to be the same as webdev or embedded. But all fields have about 10-20 core principles and...
什么是GitOps
本文转自GitOps丨一种实现云原生的持续交付模型 在此之前您可能听说过“GitOps”,但并不知道它到底是什么,除了GitOps,您可能还听说过DevOps,或者AIOps、GOps等,是的,现在是“Ops”盛行的时代。 GitOps是一种实现持续交付的模型,它的核心思想是将应用系统的声明性基础架构和应用程序存放在Git的版本控制库中。Choerodon猪齿鱼在构建持续交付流水线时参考了GitOps,并进行了实践,俗话说“兵马未动,理论先行”,在本文中,将重点阐述GitOps工作流程的原理和模式,以及将它们应用在生产和大规模运行Kubernetes中的一些实践经验。 GitOps,90%的最佳实践,10%有意思的新东西需要我们去构建。 —— 《GitOps - Operations by Pull Request》来自:https://www.weave.works 这篇文章是根据Weave Cloud的几篇关于GitOps的文章翻译整理而来: GitOps GitOps: Operations by Pull Request The GitOps Pipeline...
MySQL:主主复制+Keepalived高可用
概述mysql主主复制所谓主主复制,即双主备份,或者叫互作主从复制,每台 master 既是 master,又是 slave。这种方案,既做到了访问量的压力分流,同时也解决了单点故障问题。 KeepalivedVRRP协议**VRRP ** 可以将两台或者多台物理路由器设备虚拟成一个虚拟路由,这个虚拟路由器通过虚拟 IP(一个或者多个)对外提供服务,而在虚拟路由器内部十多个物理路由器协同工作,同一时间只有一台物理路由器对外提供服务,这台物理路由设备被成为:主路由器(Master 角色),一般情况下Master是由选举算法产生,它拥有对外服务的虚拟 IP,提供各种网络功能,如:ARP 请求,ICMP 数据转发等,而且其它的物理路由器不拥有对外的虚拟IP,也不提供对外网络功能,仅仅接收 MASTER 的 VRRP 状态通告信息,这些路由器被统称为“BACKUP的角色”,当主路由器失败时,处于 BACKUP 角色的备份路由器将重新进行选举,产生一个新的主路由器进入 MASTER 角色,继续提供对外服务,整个切换对用户来说是完全透明的。 Keepalived工作原理Keepalived...