Posts
面向全球的镜像分发网络
· ☕ 5 分钟
1. 全球的网络规划 很多面向全球的多区域基础设施,在设计之初并没有在网络规划上花费太多心思。当业务复杂到一定程度时,又被逼着进行网络调整和优化。而任何网络上的大调整,都将对业务产生巨大影响。最终会陷入进退两难之地,只能投入更多人力,背上历史包袱

使用 Thanos 集中管理多 Prometheus 实例数据
· ☕ 6 分钟
1. 监控的分层 如上图,在建设监控系统时,会采用两种策略: 分层监控。IaaS、MySQL 中间件、App 层监控分开的好处是,系统之间具有高可用性、容错性。当 App 层监控无法工作时,IaaS 层监控立马就会体现出来。 长短期指标分离。短期指标用来提供给告警

添加 SSH Key 登录及问题排查
· ☕ 3 分钟
1. 添加 key 的步骤 1.1 客户端生成 ssh key 有两种格式的 Key: 老格式,私钥以 -----BEGIN RSA PRIVATE KEY----- 开头 1 ssh-keygen -m PEM -t rsa -b 4096 -C "[email protected]" 新格式,私钥以 -----BEGIN OPENSSH PRIVATE KEY----- 开头 1 ssh-keygen -t rsa -b 4096 -C "[email protected]" 由于某些旧的系统不支持新格式的 Key,这里建议生成老格式的 Key。如果你已经在使用新格式的 Key,可以使用 puttygen

如何升级 Kubernetes 集群
· ☕ 1 分钟
升级思路是,驱逐负载、摘除流量之后,先升级控制节点,后升级工作节点。 1. 查看集群版本 1 2 3 4 kubectl version Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.4", GitCommit:"e87da0bd6e03ec3fea7933c4b5263d151aafd07c", GitTreeState:"clean", BuildDate:"2021-02-18T16:12:00Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b5237ccd9c0f1d600d3072634ca66cefdf272f", GitTreeState:"clean", BuildDate:"2021-08-04T17:57:25Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"} 当前版本是 1.22,由于 kubeadm 不允许跨版本升级,这里准备升级到 1.23 。 2. 添加 Kubernetes 安装源 CentOS 操作系统: 1 2 3 4 5 6 7

如何在 Kubernetes Pod 中注入环境变量及优先级问题
· ☕ 2 分钟
1. Kubernetes Pod 引用环境变量的几种方式 1.1 直接 Key/Value 可以直接设置 Value 值,也可以将当前 Pod 的信息作为 Value 值。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 apiVersion: v1 kind: Pod metadata: name: envar-demo labels: purpose: demonstrate-envars spec: containers: - name: envar-demo-container image: gcr.io/google-samples/node-hello:1.0 env: - name: DEMO_GREETING value: "Hello from the environment" - name: DEMO_FAREWELL value: "Such a sweet sorrow" - name: MY_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name 1.2 从 Secret 引用 有两