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 test-pod. ...
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 changed i ...
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 的取值如下表所示。
监控项
单位
MetricName
D ...
Nginx:进程调度
Nginx采用的是固定数量的多进程模型,由一个主进程(MasterProcess)和数量与主机CPU核数相同的工作进程协同处理各种事件。
主管理进程负责工作进程的配置加载、启停等操作,工作进程负责处理具体请求。进程间的资源都是独立的,每个工作进程处理多个连接,每个连接由一个工作进程全权处理,不需要进行进程切换,也就不会产生由进程切换引起的资源消耗问题。默认配置下,工作进程的数量与主机CPU核数相同,充分利用CPU和进程的亲缘性(affinity)将工作进程与CPU绑定,从而最大限度地发挥多核CPU的处理能力。
Nginx主进程负责监听外部控制信号,通过频道机制将相关信号操作传递给工作进程,多个工作进程间通过共享内存来共享数据和信息。
Tips:进程亲缘性(affinity),使进程或线程在指定的CPU(核)上运行。
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 22 d ...
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 the ...
什么是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 - Pa ...
MySQL:主主复制+Keepalived高可用
概述mysql主主复制所谓主主复制,即双主备份,或者叫互作主从复制,每台 master 既是 master,又是 slave。这种方案,既做到了访问量的压力分流,同时也解决了单点故障问题。
KeepalivedVRRP协议**VRRP ** 可以将两台或者多台物理路由器设备虚拟成一个虚拟路由,这个虚拟路由器通过虚拟 IP(一个或者多个)对外提供服务,而在虚拟路由器内部十多个物理路由器协同工作,同一时间只有一台物理路由器对外提供服务,这台物理路由设备被成为:主路由器(Master 角色),一般情况下Master是由选举算法产生,它拥有对外服务的虚拟 IP,提供各种网络功能,如:ARP 请求,ICMP 数据转发等,而且其它的物理路由器不拥有对外的虚拟IP,也不提供对外网络功能,仅仅接收 MASTER 的 VRRP 状态通告信息,这些路由器被统称为“BACKUP的角色”,当主路由器失败时,处于 BACKUP 角色的备份路由器将重新进行选举,产生一个新的主路由器进入 MASTER 角色,继续提供对外服务,整个切换对用户来说是完全透明的。
Keepalived工作原理Keepalived 的作用 ...
Zabbix 5.0:磁盘自动发现和读写监控
自动发现磁盘配置键值
注意:此键值仅支持Linux平台。
此发现键值返回两个宏 :
{#DEVNAME} :设备名
{#DEVTYPE} :设备类型
例如:
123456789101112131415161718[ { "{#DEVNAME}":"loop1", "{#DEVTYPE}":"disk" }, { "{#DEVNAME}":"dm-0", "{#DEVTYPE}":"disk" }, { "{#DEVNAME}":"sda", "{#DEVTYPE}":& ...