AWS CNI Proposal
AWS VPS CNI K8S
本文是 aws-cni 的设计文档。AWS Kubernetes CNI 插件可用于在 EKS 中提供类似 Flannel, Calico 这类网络软件的功能 - 为 Pod 配置必要的网络。
更具体的,它的设计目标: * 为成为 kubernetes 节点的每个 ec2 实例创建多个 Elastic network interface(ENI),分配二级 IP 地址 * 为每个 Pod 挑选一个可用的二级 IP 地址,把主机跟 Pod 的网络连起来,允许 Pod-Pod, Pod-PodInAnotherHost, Pod-AWSService, Pod-DC, Pod-Internet 多个级别的通信。
它的需求是 …
read moreWhats new in Python_3_7
Python 3.7 的新货。
- 内建 breakpoint() 函数,在需要的地方插上
breakpoint()
就能启动调试了。以及,可以通过 PYTHONBREAKPOINT 环境变量配置想用什么软件做当调试器,例如 web-pdb - Data Class 单纯的数据类,可以约束乱用 dict 的现象。
- 可以在 module 级别写
__getattr__
// 有点像 quixote 的_q_lookup
.. - 也可以在 module 级别写
__dir()__ -> List[str]
- time.time_ns() 可以获得纳秒时间了,适合在 performance 排查时使用。
- DeprecationWarning 只在测试和 main 的时候启用。
- 可用标准库的
contextvars …
GlusterFS Architecture
GlusterFS 是一个分布式的文件系统,基本存储单元是 Brick,一组 Bricks 组成一个 Volume,一个 Volume 通过 FUSE 挂载到 Mount Point 上。大多数操作的基本单元是 Volume。
GlusterFS 可以使用多种 Volume:
- 默认:文件存储于单个 Brick 上。这也意味着数据可能因为硬件原因造成丢失。
- Replicated Glusterfs Volume: 文件 Replicate 到多个 Bricks 上。一般首选该模式。
- Distributed Replicated Glusterfs Volume: 文件 Replicate 到某个 Volume 的多个 Bricks 上。
- Striped Glusterfs Volume …
Observability time series vs logging vs tracing
本文就 Monitoring 涉及到的三种数据结构:Time Series, Log Event, Tracing Span 提供了通用解决方案。
- TimeSeries: 监控的时间序列数据,自搭首选 Prometheus,买服务用 DataDog。InfluxDB 可以作为 Prometheus 的另外一个方案。不推荐 Cassandra, Elastic,写性能太差。
- Log Event: 应用产生的日子条目,数据量大,自搭首选 Elastic 全家桶,买服务用 Splunk。这里的日志特指已经把日志解析成 JSON 这样的结构化数据。
- Tracing:服务追踪产生的数据,首选 Jaeger(k8s), Zipkin,OpenAPM。这类服务太贵了,建议自搭。
结论:要想做好服务的 Observability,这三类数据是无论如何要收集好的 …
read more