基于 Terraform 构建企业内部 kubernetes 集群
1. 为什么要构建企业内部 Kubernetes 集群?
随着企业业务规模的不断扩张,微服务架构逐渐成为主流,应用的数量、版本迭代的频率以及部署的复杂度都在急剧上升。在这一背景下,建立一套稳定、高效、可扩展的企业内部 Kubernetes 集群,成为支撑企业数字化转型的核心基础设施之一。
1.1 构建统一的资源调度平台
企业内部往往同时运行着多条业务线、多个团队的应用服务。Kubernetes 提供了统一的容器编排与资源调度能力,能够将计算、存储、网络资源进行统一抽象和调度,避免各团队烟囱式的资源使用模式,显著提升整体资源利用率。
1.2 支撑 CI/CD 流水线落地
Kubernetes 是现代 CI/CD 流水线的天然载体。通过与 GitLab CI、Jenkins、ArgoCD、Tekton 等工具集成,企业可以实现:
- 持续集成(CI):代码提交后自动触发构建、测试,产出镜像并推送到私有镜像仓库。
- 持续交付(CD):基于 GitOps 理念,通过声明式配置驱动应用在集群中的自动发布与回滚。
- 多环境隔离:通过 Namespace、NetworkPolicy、RBAC 等机制,在同一集群内划分开发、测试、预发、生产等多套环境,降低环境管理成本。
1.3 提升业务稳定性与弹性
Kubernetes 内置的自愈能力(Pod 自动重启、节点故障迁移)、水平自动伸缩(HPA/VPA/KEDA)以及滚动更新策略,能够大幅提升业务服务的可用性和弹性,满足企业对 SLA 的严格要求。
1.4 降低运维复杂度
统一的控制平面使运维团队可以通过标准化的 kubectl 命令或声明式 YAML 配置管理所有工作负载,结合 Helm Chart 进行应用打包与版本管理,有效降低了跨团队、跨项目的运维协作成本。
2. 构建内部 K8s 集群核心流程
2.1 整体流程概览
基础资源准备 → 操作系统初始化 → 集群安装部署 → 网络插件配置 → 存储插件配置 → 集群验证 → 监控告警部署
2.2 基础资源准备
构建 K8s 集群首先需要准备充足的计算、存储和网络资源。
计算资源方案对比:
…Homebrew 国内下载慢的解决之法及下载过程剖析
对懂点技术的人来说, HomeBrew 几乎成为了 MacOS 上的必装软件,主打一个安装方便,在终端一个命令即可安装配置好。MacOS 下使用的软件大致分为两类: 一类是如 fd、neovim 在终端下使用的软件,另一类是如 Google Chrome 的 GUI 软件,通常可在 Apple Store 下载。 终端安软件安装方式: brew install <formula>,GUI 软件安装方式: brew install --cask <cask>,其中的 <formula> 和 <cask> 均为你想安装的软件名称, 如果不确定具体名称,可通过: brew search <keyword>搜索。 在国内网络环境下,在 MacOS 上安装软件时,通常会卡在如下所示的流程:

等了好久也没见动静,这是因为默认下载源是从 GitHub 数据中心下载,国内对 GitHub 有限制。
解决办法:配置国内镜像源
目前国内主流的 Homebrew 镜像有:清华大学、阿里云、中科大、腾讯云等。以清华源和阿里云为例,介绍配置方法。
1. 配置清华源
替换 Homebrew 源
#替换 brew.git
cd "$(brew --repo)"
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
# 替换 homebrew-core.git
cd "$(brew --repo homebrew/core)"
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
# 替换 homebrew-cask.git
cd "$(brew --repo homebrew/cask)"
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git
# 配置 bottle 镜像(formula 二进制)
# 推荐写入 ~/.zshrc 或 ~/.bash_profile
export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles
# 立即生效
source ~/.zshrc # 或 source ~/.bash_profile
# 更新 brew
brew update
2. 配置阿里云源
# 替换 brew.git
cd "$(brew --repo)"
git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git
# 替换 homebrew-core.git
cd "$(brew --repo homebrew/core)"
git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git
# 替换 homebrew-cask.git
cd "$(brew --repo homebrew/cask)"
git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-cask.git
# 配置 bottle 镜像
export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles
source ~/.zprofile # 或 source ~/.bash_profile
brew update
其他镜像如中科大、腾讯云等配置方法类似,详见各镜像站帮助文档。
…0-3 岁孩子应该培养的关键能力
家里有一个快两岁的孩子,我一直在思考,该如何科学地养育他,需要培养哪些核心能力,使他成为一个身心健康、积极上进的人,而不是一味关注他参加多少辅导班、课外兴趣班,或计较他吃得胖瘦。带着这些思考,我咨询了多个“名导”——OpenAI 4o-mini、Kimi、DeepSeek R1等,整合了他们的回答,整体很满意,在自己受用的同时也分享给大家,希望能给有孩子的家长带来一些启发,下面是我整理的内容:
0-3 岁是儿童发展的关键期。此时大脑突触连接数量达到高峰,感官、认知、社交与情感等多方面发展迅速。皮亚杰的感知运动阶段理论、埃里克森的心理社会发展理论,以及哈佛大学、UNESCO 和 WHO 等权威研究,都强调了这一阶段丰富感官刺激、稳定亲子互动与系统性早教的重要性。基于这些理论与实证,个人认为 0-3 岁阶段最应着重培养以下五大关键能力:
- 运动能力(Gross & Fine Motor)
- 语言能力(Language)
- 感官能力(Sensory Integration)
- 认知能力(Cognition)
- 社交能力(Social-Emotional)
1. 运动能力(Gross & Fine Motor)
运动能力可分为大运动与精细运动:
- 0-12 个月:重点练习俯卧抬头、翻身、坐稳、爬行等大运动;在 6-12 个月间加入摇铃抓握、拇指对捏、撕纸等精细动作。
- 12-24 个月:培养独立行走、蹲起、爬梯等大运动,同时进行搭积木、倒水、串珠子等精细练习。
- 24-36 个月:鼓励跑、跳、单脚站立、平衡木行走等,以提升身体协调与平衡;通过涂鸦、剪纸等活动丰富精细运动体验。
Japanese Word Series - Countries
Countries
| Hiragana | 漢字 | English |
|---|---|---|
| にほん | 日本 | Japan |
| ちゅうごく | 中国 | China |
| かんこく | 韓国 | Korea |
| アメリカ | America | |
| イギリス | United Kingdom | |
| インド | India | |
| インドネシア | Indonesia | |
| タイ | Tailand | |
| ドイツ | Germany | |
| フランス | France | |
| ブラジル | Brazil |
Japanese Word Series - Vegetables & Meat
Vegetables
| 単語 | 中文 |
|---|---|
| トマト | 西红柿 |
| ししとう | 青椒 |
| 唐辛子(とうがらし) | 辣椒 |
| きゆうに | 黄瓜 |
| かぼちゃ | 南瓜 |
| 冬瓜(とうがん) | 冬瓜 |
| ゴーヤ | 苦瓜 |
| オクラ | 秋葵 |
| なす | 茄子 |
| ジャガイモ | 土豆 |
| 山芋(やまいも) | 山药 |
| 蓮根(レンコン) | 莲藕 |
| 人参(にんじん) | 胡萝卜 |
| 大根(だいこん) | 白萝卜 |
| サマネギ | 洋葱 |
| さつまいも | 红薯 |
| レタス | 生菜 |
| ほうれん草 | 菠菜 |
| ネギ | 大葱 |
| ニラ | 韭菜 |
| ブロッコリー | 西兰花 |
Meat(にく)
| 単語 | 中文 |
|---|---|
| 牛肉(ぎゅうにく) | 牛肉 |
| 豚肉(ぶたにく) | 猪肉 |
| 鶏肉(とりにく) | 鸡肉 |
| 魚(さかな) | 鱼 |
References
Janpanese Word Series - Fruits
Fruits
| 単語 | 中文 |
|---|---|
| バナナ | 香蕉 |
| ぃんご | 苹果 |
| 梨(なし) | 梨 |
| 桃(もも) | 桃 |
| オレンジ | 橙子 |
| 金柑 | 金桔 |
| ぶどう | 葡萄 |
| いちご | 草莓 |
| ライチ | 荔枝 |
| レモン | 柠檬 |
| ラズベリー | 树莓 |
| ヤマモモ | 杨梅 |
| ゆず | 柚子 |
| マンゴスチン | 山竹 |
| マンゴ | 芒果 |
| マルーベリー | 蓝莓 |
| 桑の実(くわのじつ) | 桑葚 |
| キウイ | 猕猴桃 |
| 柘榴(ざくろ) | 石榴 |
| スイカ | 西瓜 |
技术图谱
以下是我根据个人经验整理的技术图谱,主要是为了做技术梳理,同时希望能够给予别人一点帮助,后续会不定期更新。

MacOS 环境批量安装软件
最近工作使用的电脑新换到 MacBook Pro M1 13寸,平时工作使用的各种工具 & 软件都需要重新安装 & 配置,耗时耗力而且没有太多成就感,所以一直在思索如何将其自动化掉,避免每次换电脑都要做重复的劳动。自己平时安装各种软件比较依赖 HomeBrew,印象中它有提供 Brewfile 可以批量安装软件,只是自己一直没有使用起来。刚好趁这次机会拿来练练手,一来总结经验以备下次复用,二来分享出来希望可以帮助到他人。下面分享下我是如何使用 Brewfile 批量安装工作必备软件的。
1. 前提
使用 Brewfile 进行批量安装前,需要安装:
另外若在 Brewfile 中指定 mas 从 AppleStore 安装软件,请保证 AppleID 已登录。
2. 列出所需软件清单,形成 Brewfile
在批量安装前,列出自己平时工作所需的软件,在任意目录下创建名为 Brewfile 的文件,文件内容及格式可以参考我目前使用的 Brewfile 来声明:
# taps
tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/core"
# packages
brew 'vim'
brew 'git'
brew 'zsh'
brew 'tmux'
brew 'ripgrep'
brew 'bat'
brew 'helix'
brew 'jq'
brew 'mas'
# tools
cask 'emacs'
cask 'google-chrome'
cask 'notion'
cask 'alfred'
cask 'warp'
cask 'intellij-idea-ce'
cask 'sequel-pro'
cask 'clashx'
cask 'tunnelblick'
# language
# cask 'java'
brew 'go'
brew 'cmake'
brew 'maven'
brew 'yarn'
# install apps from apple store: 1. mas search <keyword>, find id 2. add one line below
mas "MindNode", id: 1289197285
mas "CopyClip", id: 595191960
mas "QQ音乐", id: 595615424
文件内容主要分为四部分:
…域名是如何解析的?
基本概念
我们生活在互联网时代,每天的工作生活几乎都在与互联网打交道,比如使用 Google 查找工作学习所需资料,使用 Youtube、抖音、网易云音乐等进行娱乐活动,通过 Twitter、微博、微信等获取新闻资讯及社交,使用京东、天猫、拼多多等购物,使用微信支付、支付宝支付进行付款等,这些都离不开网络。那么作为构成网络基础设施核心之一的域名(Domain)你知道是如何工作的吗?下面我们简单展开介绍下。
所有的信息都存储在服务器上,可通过 IP 地址访问获取,但通常 IP 地址难以记住,于是乎产生了域名概念。起初网络仅有少数服务器构成,域名到 IP 的映射信息可存储在单个文件(eg: /etc/hosts),随着网络的蓬勃发展,单文件难以容纳所有的域名IP 映射关系,同时映射关系变更时,难以及时同步至各服务器,于是 DNS(Domain Name System) 协议诞生,映射关系通过 DNS 服务器集中存储,用户根据所需向 DNS 服务器查询。那么 DNS 服务器是如何来存储域名映射关系的呢?这个映射关系是谁来负责写入的呢?下面来揭晓。
…Emacs 常用基本操作
Emacs 作为 Programmer 熟知的两大 Editor 之一流行了很多年了,据说学习曲线陡峭,一直处于劝退状态。但作为喜欢折腾各种工具的自己来说,内心一直有跃跃欲试的想法,终于最近两个月得闲,开始研究学习上了。通过学习官网Tutorials 熟悉其基本操作 & 配置,同时 Google 了解 Emacs 使用频次最高的一些插件,在使用过程中不断优化配置,打造成自己趁手的工具。目前,我主要有三种使用场景: 1. 文本编辑 2. 代码阅读 3. 写业余代码。以下是我在学习过程中整理的常用基本操作,分享出来一方面是当作学习笔记输出,以便后续遗忘时快速查找,另一方面也希望能带给他人一些帮助。
目前的常用操作有:
- 单文件操作
- 光标移动
- 复制(copy) & 粘贴(paste)
- 插入(insert) & 删除(delete)
- 撤销(undo) & 重做(redo)
- 窗口操作
- 阅读代码常用操作
- 查看帮助文档
在使用 Emacs 时,有几个关键概念:
- Buffer
- Window
- Frame
- Mode
请自行查阅文档了解。
…注:
C-h表示按住 Ctrl 键的同时按 h 键;M-x表示按住 Alt/Meta 键的同时按 x 键;S-p f表示按住 Windows 键,再依次按 p f 键。