<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Kubernetes on Tony Bai</title><link>https://tonybai.com/tags/kubernetes/</link><description>Recent content in Kubernetes on Tony Bai</description><generator>Hugo</generator><language>zh-cn</language><copyright>2004-2026 Tony Bai. 版权所有.</copyright><lastBuildDate>Mon, 22 Jun 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://tonybai.com/tags/kubernetes/index.xml" rel="self" type="application/rss+xml"/><item><title>屠榜 CNCF！为什么在云原生时代，Go 语言能把 Java、C++ 和 Rust 堵在门外？</title><link>https://tonybai.com/2026/06/22/why-is-go-dominating-in-cncf-landscape/</link><pubDate>Mon, 22 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/22/why-is-go-dominating-in-cncf-landscape/</guid><description>本文永久链接 – https://tonybai.com/2026/06/22/why-is-go-dominating-in-cncf-landscape 大家好，我是Tony Bai。 如果你去翻阅 CNCF（云原生计算基金会）的全景图（Landscape），你会发现一个极其震撼、甚至近乎垄断的现象： 从奠定容器时代基础的 **Docker**，到统治现代云编排的 **Kubernetes**...</description></item><item><title>悄悄用 Go 重写 AI 基础设施：NVIDIA 的 GPU 云平台为何选择 Go？</title><link>https://tonybai.com/2026/05/26/why-nvidia-chose-go-to-rewrite-their-ai-infrastructure/</link><pubDate>Tue, 26 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/26/why-nvidia-chose-go-to-rewrite-their-ai-infrastructure/</guid><description>本文永久链接 – https://tonybai.com/2026/05/26/why-nvidia-chose-go-to-rewrite-their-ai-infrastructure &amp;gt; 当大家都在谈论 CUDA、Python 和 AI 框架时，NVIDIA 的工程团队正在悄悄用 Go 构建支撑整个 AI 云平台的底层基础设施。从 GPU 函数平台 NVCF，到 AI 集群运行时 AICR，...</description></item><item><title>Google 开源 AX 与 Agent Substrate：构建以 Agent 为核心的云原生计算底座</title><link>https://tonybai.com/2026/05/23/google-open-sources-ax-and-agent-substrate-agent-centric-cloud-native-foundation/</link><pubDate>Sat, 23 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/23/google-open-sources-ax-and-agent-substrate-agent-centric-cloud-native-foundation/</guid><description>本文永久链接 – https://tonybai.com/2026/05/23/google-open-sources-ax-and-agent-substrate-agent-centric-cloud-native-foundation 大家好，我是Tony Bai。 随着大语言模型（LLM）与应用场景的深度融合，AI 正在从单纯的“聊天对话框”快速演进为具备长期运行、自主工具调用和复杂任务编...</description></item><item><title>一天重写 JSONata，我用 400 美元干掉了公司 50 万美元的 K8s 集群</title><link>https://tonybai.com/2026/04/01/rewrote-jsonata-in-golang-with-ai/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/01/rewrote-jsonata-in-golang-with-ai/</guid><description>本文永久链接 – https://tonybai.com/2026/04/01/rewrote-jsonata-in-golang-with-ai 大家好，我是Tony Bai。 过去的几年，我们见证了 AI 编程工具从“玩具”到“神器”的进化。无数开发者都在分享自己效率翻倍的喜悦。 你有没有想过，用 AI 来完成一次“外科手术式”的精准重构，一天之内，就能帮你把公司每年烧掉的 50 万美元（约 ...</description></item><item><title>如果服务器悄悄“猝死”，你的系统还能活几秒？揭秘分布式集群的“续命”保底机制</title><link>https://tonybai.com/2026/03/20/heartbeats-in-distributed-systems/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/20/heartbeats-in-distributed-systems/</guid><description>本文永久链接 – https://tonybai.com/2026/03/20/heartbeats-in-distributed-systems 大家好，我是Tony Bai。 在开发单体应用时，我们很少操心“服务器死没死”的问题——进程挂了就是挂了，整个服务直接 502。但在庞大的分布式系统和微服务架构中，最大的噩梦往往不是服务器彻底宕机，而是**“它悄悄死去了，但整个集群却以为它还活着”。*...</description></item><item><title>20 年 Java 老店的“背叛”：WSO2 为何高呼“Goodbye Java, Hello Go”？</title><link>https://tonybai.com/2026/01/29/wso2-goodbye-java-hello-go-tech-stack-shift/</link><pubDate>Thu, 29 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/29/wso2-goodbye-java-hello-go-tech-stack-shift/</guid><description>本文永久链接 – https://tonybai.com/2026/01/29/wso2-goodbye-java-hello-go-tech-stack-shift 大家好，我是Tony Bai。 “当我们 2005 年创办 WSO2 时，开发服务端企业级基础设施的正确语言毫无疑问是：Java。然而，当我们走过第 20 个年头并展望未来时，情况已经变了。” 近日，全球知名的开源中间件厂商 WSO...</description></item><item><title>Kelsey Hightower 退休后的冷思考：为什么 10 年过去了，我们还在谈论容器？</title><link>https://tonybai.com/2026/01/22/why-are-we-still-talking-about-containers-in-ai-age/</link><pubDate>Thu, 22 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/22/why-are-we-still-talking-about-containers-in-ai-age/</guid><description>本文永久链接 – https://tonybai.com/2026/01/22/why-are-we-still-talking-about-containers-in-ai-age 大家好，我是Tony Bai。 “如果你在 2014 年告诉我，十年后我们还在讨论容器，我会觉得你疯了。但现在是 2025 年，我们依然在这里，谈论着同一个话题。” 在去年中旬举行的 ContainerDays Ha...</description></item><item><title>Go 跌出 TIOBE 前十？别被排名骗了，这才是它的真实地位</title><link>https://tonybai.com/2025/12/11/is-golang-still-a-growing-programming-language/</link><pubDate>Thu, 11 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/11/is-golang-still-a-growing-programming-language/</guid><description>本文永久链接 – https://tonybai.com/2025/12/11/is-golang-still-a-growing-programming-language 大家好，我是Tony Bai。 Go 语言是否已经触到了天花板？在 Python 借力 AI 狂飙突进、Rust 备受追捧的今天，Go 的位置究竟在哪里？近日，Twitch工程师 Melkey 结合 JetBrains、Sta...</description></item><item><title>如果《疯狂动物城》是一个分布式系统，那它一定是用 Go 写的</title><link>https://tonybai.com/2025/12/06/zootopia-distributed-system-written-in-go/</link><pubDate>Sat, 06 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/06/zootopia-distributed-system-written-in-go/</guid><description>本文永久链接 – https://tonybai.com/2025/12/06/zootopia-distributed-system-written-in-go 大家好，我是Tony Bai。 **文章开始前，先给各位道个歉，今天的标题确实有点“党”。** 毕竟，非要说一个满是毛茸茸动物的动画片是用 Go 语言写的，这脑洞开得确实有点大。 但请原谅一个老程序员的“职业病”。 为了迎接本周末《疯狂...</description></item><item><title>Go 2025云原生与可观测年度报告：底层性能革新与生态固防</title><link>https://tonybai.com/2025/12/03/go-2025-cloud-native-observability-report/</link><pubDate>Wed, 03 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/03/go-2025-cloud-native-observability-report/</guid><description>本文永久链接 – https://tonybai.com/2025/12/03/go-2025-cloud-native-observability-report 大家好，我是Tony Bai。 **2025年，对于 Go 语言和云原生生态来说，是充满挑战与变革的一年。** 凭借务实的并发模型、极快的编译速度和极简的部署体验，Go 语言在过去十年间毫无争议地坐稳了现代云原生基础设施的“铁王座”。从...</description></item><item><title>13万节点！Google 如何打破 Kubernetes 的物理极限，构建全球最大集群</title><link>https://tonybai.com/2025/11/26/how-google-built-a-130000-node-k8s-cluster/</link><pubDate>Wed, 26 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/26/how-google-built-a-130000-node-k8s-cluster/</guid><description>本文永久链接 – https://tonybai.com/2025/11/26/how-google-built-a-130000-node-k8s-cluster 大家好，我是Tony Bai。 Kubernetes 的官方支持上限通常被认为是 5,000 到 15,000 节点。然而，在 AI 时代的算力军备竞赛中，这个数字显得有些“捉襟见肘”。 近日，Google Cloud 发布了一份重磅...</description></item><item><title>霸榜 GitHub 一周！Google 开源 ADK for Go，彻底终结 AI“炼丹”时代？</title><link>https://tonybai.com/2025/11/24/google-adk-go-in-action/</link><pubDate>Mon, 24 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/24/google-adk-go-in-action/</guid><description>本文永久链接 – https://tonybai.com/2025/11/24/google-adk-go-in-action 大家好，我是Tony Bai。 上周，我花了一个下午，仅仅是为了让一个Python写的Agent能稳定地调用我Go服务里的一个简单函数。在那一刻，看着屏幕上纠缠的gRPC、Python虚拟环境和混乱的日志，我脑海里只有一个念头：这不对劲，这绝对不是软件工程该有的样子！ 显...</description></item><item><title>Go 在 Web3 的统治力：2025 年架构与生态综述</title><link>https://tonybai.com/2025/11/18/go-web3-dominance-overview-2025/</link><pubDate>Tue, 18 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/18/go-web3-dominance-overview-2025/</guid><description>本文永久链接 – https://tonybai.com/2025/11/18/go-web3-dominance-overview-2025 大家好，我是Tony Bai。 截至 2025 年末，Go 语言 (Golang) 作为**基础设施主导语言 (Infrastructure Dominance Language)**，在 Web3 生态系统中的地位已然根深蒂固。Go 的架构特性——特别是...</description></item><item><title>你的 Kubernetes 知识在“冰山”的第几层？—— 一份给 Gopher 的 K8s 进阶“航海图”</title><link>https://tonybai.com/2025/11/17/explain-kubernetes/</link><pubDate>Mon, 17 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/17/explain-kubernetes/</guid><description>本文永久链接 – https://tonybai.com/2025/11/17/explain-kubernetes 大家好，我是Tony Bai。 近日，一张关于 Kubernetes 知识体系的“冰山图”在开发者社区广为流传。它以一种戏谑而又无比真实的方式，描绘了从入门到精通 K8s 所需跨越的深邃鸿沟。 对于我们 Gopher 而言，这张图有着非凡的意义。因为 Kubernetes 这座宏伟...</description></item><item><title>Go 也开始“叛逆”了？深度解读 JetBrains 2025 报告：为何“原生信仰”不再是唯一答案</title><link>https://tonybai.com/2025/11/14/the-go-ecosystem-in-2025/</link><pubDate>Fri, 14 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/14/the-go-ecosystem-in-2025/</guid><description>本文永久链接 – https://tonybai.com/2025/11/14/the-go-ecosystem-in-2025 大家好，我是Tony Bai。 Go 语言迎来了它的第 16 个年头。从一个旨在解决 Google 内部工程效率问题的项目，成长为拥有超过 500 万开发者的全球性技术力量，16 岁的 Go 已然进入了一个成熟、稳健的“少年时代”。 在这个值得纪念的里程碑时刻，我们不禁...</description></item><item><title>Go 的 16 年：一门为持久而生的编程语言</title><link>https://tonybai.com/2025/11/12/16-years-of-go-a-programming-language-built-to-last/</link><pubDate>Wed, 12 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/12/16-years-of-go-a-programming-language-built-to-last/</guid><description>本文永久链接 – https://tonybai.com/2025/11/12/16-years-of-go-a-programming-language-built-to-last 大家好，我是Tony Bai。 每年的十一月，对于全球的 Gopher 而言，都是一个值得纪念的特殊时刻。今年，我们迎来了 Go 语言公开发布的第 16 个年头。 在众多的庆祝文章中，来自 Go 社区的知名组织 Ar...</description></item><item><title>Go 模块构建与依赖管理：我们到底在“折腾”什么？</title><link>https://tonybai.com/2025/10/27/the-ultimate-guide-to-go-module/</link><pubDate>Mon, 27 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/27/the-ultimate-guide-to-go-module/</guid><description>Go 模块构建与依赖管理：我们到底在“折腾”什么？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 G...</description></item><item><title>Go 语言观察：登顶“最受期待”榜首，JetBrains 2025报告洞悉未来趋势</title><link>https://tonybai.com/2025/10/23/go-language-leads-jetbrains-trends/</link><pubDate>Thu, 23 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/23/go-language-leads-jetbrains-trends/</guid><description>本文永久链接 – https://tonybai.com/2025/10/23/go-language-leads-jetbrains-trends 大家好，我是Tony Bai。 近日，软件开发工具巨头 JetBrains 发布了其年2025度《开发者生态系统现状》报告，这份基于全球数万名开发者调研的数据报告，已成为洞察技术风向的关键参考之一。在今年的报告中，Go 语言的表现尤为亮眼，它不仅在“...</description></item><item><title>7 个常见的 Kubernetes 陷阱（以及我是如何学会避免它们的）</title><link>https://tonybai.com/2025/10/22/seven-kubernetes-pitfalls/</link><pubDate>Wed, 22 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/22/seven-kubernetes-pitfalls/</guid><description>本文永久链接 – https://tonybai.com/2025/10/22/seven-kubernetes-pitfalls 大家好，我是Tony Bai。 本文翻译自Kubernetes官方博客《7 Common Kubernetes Pitfalls (and How I Learned to Avoid Them)》一文。 这篇文章的作者Abdelkoddous Lhajouji 以第...</description></item><item><title>“自立程序员宣言”解读：这不就是我们一直在说的Go语言哲学吗？</title><link>https://tonybai.com/2025/09/26/self-reliant-programmer/</link><pubDate>Fri, 26 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/26/self-reliant-programmer/</guid><description>“自立程序员宣言”解读：这不就是我们一直在说的Go语言哲学吗？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * ...</description></item><item><title>直面依赖之痛与TLS简化：GopherCon 2025贡献者峰会核心纪要深度解读</title><link>https://tonybai.com/2025/09/11/gophercon-2025-contributor-summit-notes/</link><pubDate>Thu, 11 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/11/gophercon-2025-contributor-summit-notes/</guid><description>本文永久链接 – https://tonybai.com/2025/09/11/gophercon-2025-contributor-summit-notes 大家好，我是Tony Bai。 GopherCon 2025 贡献者峰会刚刚落下帷幕。在这场Go核心团队与全球顶尖贡献者齐聚一堂的闭门会议中，Go语言的未来方向被激烈地讨论和塑造。这些讨论或许不像发布泛型那样惊天动地，但它们如同地壳深处的板...</description></item><item><title>从《凡人修仙传》看程序员境界：道友，你修炼到哪一层了？</title><link>https://tonybai.com/2025/09/08/fanren-xiuxian-programmer-levels/</link><pubDate>Mon, 08 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/08/fanren-xiuxian-programmer-levels/</guid><description>本文永久链接 – https://tonybai.com/2025/09/08/fanren-xiuxian-programmer-levels 大家好，我是Tony Bai。 最近《凡人修仙传》的电视剧大火，想必各位道友都有耳闻。鄙人也没忍住，不仅刷完了杨洋主演的网剧，还趁着这股热乎劲儿，一口气在微信读书连读再听地补完了小说的人界篇。 当看到韩立资质平平，相貌普通，却凭着“小绿瓶”、远超常人的心...</description></item><item><title>Go语言的“灵魂拷问”：接口只关乎行为，还是也应拥抱数据？</title><link>https://tonybai.com/2025/08/27/go-interface-embrace-data/</link><pubDate>Wed, 27 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/27/go-interface-embrace-data/</guid><description>本文永久链接 – https://tonybai.com/2025/08/27/go-interface-embrace-data 大家好，我是Tony Bai。 在 Go 语言的世界里，接口（interface）一直被视为其设计哲学的基石之一——它只关心一个类型能**做什么**（行为），而不关心它**是什么**（结构）。这种基于方法集的鸭子类型，赋予了 Go 独一无二的灵活性和解耦能力。然而，随...</description></item><item><title>无聊即可靠：一位资深工程师的九条系统设计法则</title><link>https://tonybai.com/2025/08/26/good-system-design/</link><pubDate>Tue, 26 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/26/good-system-design/</guid><description>本文永久链接 – https://tonybai.com/2025/08/26/good-system-design 大家好，我是Tony Bai。 在技术圈，我们常常被各种“炫技式”的系统设计建议所包围。从入门级的“你一定没听说过队列吧？”到专家级的“在数据库里存布尔值简直是灾难”，这些建议要么过于肤浅，要么过于精巧，往往脱离了大多数工程实践的真实上下文。就连《设计数据密集型应用》这样的经典之作...</description></item><item><title>后VMware时代：为什么Kubernetes正在成为VM的新家？</title><link>https://tonybai.com/2025/08/05/the-voice-of-k8s-experts-report-2025/</link><pubDate>Tue, 05 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/05/the-voice-of-k8s-experts-report-2025/</guid><description>后VMware时代：为什么Kubernetes正在成为VM的新家？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 ...</description></item><item><title>AI 正在放大技术选型的风险：为什么我们更应该“选择无聊的技术”</title><link>https://tonybai.com/2025/08/03/choose-boring-technology/</link><pubDate>Sun, 03 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/03/choose-boring-technology/</guid><description>AI 正在放大技术选型的风险：为什么我们更应该“选择无聊的技术” - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 *...</description></item><item><title>Prometheus 联合创始人的警告：在使用 OpenTelemetry 生成 Metrics 前请三思！</title><link>https://tonybai.com/2025/07/27/native-prometheus-instrumentation-over-opentelemetry/</link><pubDate>Sun, 27 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/27/native-prometheus-instrumentation-over-opentelemetry/</guid><description>本文永久链接 – https://tonybai.com/2025/07/27/native-prometheus-instrumentation-over-opentelemetry 大家好，我是Tony Bai。 在云原生可观测性的世界里，OpenTelemetry (OTel) 正如日中天。它被誉为“可观测性的未来”，承诺用一个统一的标准，终结 Metrics、Traces、Logs 各自为...</description></item><item><title>不止是云原生：为什么 Go 的热度在持续上升？来自社区的真实声音</title><link>https://tonybai.com/2025/07/23/go-surge-in-popularity/</link><pubDate>Wed, 23 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/23/go-surge-in-popularity/</guid><description>不止是云原生：为什么 Go 的热度在持续上升？来自社区的真实声音 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 *...</description></item><item><title>Twitch工程师的Go进阶之路：为何你写的Go代码，总感觉“不对劲”？</title><link>https://tonybai.com/2025/07/04/everything-i-did-to-become-an-expert-in-golang/</link><pubDate>Fri, 04 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/04/everything-i-did-to-become-an-expert-in-golang/</guid><description>本文永久链接 – https://tonybai.com/2025/07/04/everything-i-did-to-become-an-expert-in-golang 大家好，我是Tony Bai。 你是否也有过这样的时刻？ 你已经用 Go 写了不少代码，项目也能跑起来，但内心深处总有一种挥之不去的“别扭感”。你写的 Go 代码，看起来更像是“带有 Go 语法的 Java/Python”，充...</description></item><item><title>特斯拉首席工程师的忠告：用“单向门 vs 双向门”决策，看清分布式系统的未来</title><link>https://tonybai.com/2025/07/01/predicting-the-future-of-distributed-systems/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/01/predicting-the-future-of-distributed-systems/</guid><description>特斯拉首席工程师的忠告：用“单向门 vs 双向门”决策，看清分布式系统的未来 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进...</description></item><item><title>Kubernetes 2.0 畅想：告别 YAML、etcd 束缚与 Helm 之痛，K8s 的下一站是什么？</title><link>https://tonybai.com/2025/06/21/kubernetes-2-0/</link><pubDate>Sat, 21 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/21/kubernetes-2-0/</guid><description>Kubernetes 2.0 畅想：告别 YAML、etcd 束缚与 Helm 之痛，K8s 的下一站是什么？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * G...</description></item><item><title>当一切皆可用Python：Go这样的通用语言与DSL的未来价值何在？</title><link>https://tonybai.com/2025/06/19/language-design-in-the-era-of-llm/</link><pubDate>Thu, 19 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/19/language-design-in-the-era-of-llm/</guid><description>当一切皆可用Python：Go这样的通用语言与DSL的未来价值何在？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FA...</description></item><item><title>GCP大面积故障，Go语言是“元凶”还是“背锅侠”？</title><link>https://tonybai.com/2025/06/16/go-avoid-critical-incident/</link><pubDate>Mon, 16 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/16/go-avoid-critical-incident/</guid><description>GCP大面积故障，Go语言是“元凶”还是“背锅侠”？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 ...</description></item><item><title>Go还是Rust？2025年技术选型之辩</title><link>https://tonybai.com/2025/06/15/rust-vs-go-2025/</link><pubDate>Sun, 15 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/15/rust-vs-go-2025/</guid><description>Go还是Rust？2025年技术选型之辩 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 文章列表...</description></item><item><title>Go 1.25新特性前瞻：GC提速，容器更“懂”Go，json有v2了！</title><link>https://tonybai.com/2025/06/14/go-1-25-foresight/</link><pubDate>Sat, 14 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/14/go-1-25-foresight/</guid><description>Go 1.25新特性前瞻：GC提速，容器更“懂”Go，json有v2了！ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课...</description></item><item><title>云原生时代，如何用RED三板斧搞定服务监控？</title><link>https://tonybai.com/2025/05/26/monitor-design-with-red/</link><pubDate>Mon, 26 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/26/monitor-design-with-red/</guid><description>云原生时代，如何用RED三板斧搞定服务监控？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 文章...</description></item><item><title>Google I/O 2025 Go 语言进展：生产力、生产就绪与 AI 赋能</title><link>https://tonybai.com/2025/05/25/go-at-googleio-2025/</link><pubDate>Sun, 25 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/25/go-at-googleio-2025/</guid><description>Google I/O 2025 Go 语言进展：生产力、生产就绪与 AI 赋能 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言...</description></item><item><title>go-yaml归档背后：Go开源生态的“脆弱”与“韧性”，我们该如何看待？</title><link>https://tonybai.com/2025/04/28/go-ecosystem/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/28/go-ecosystem/</guid><description>go-yaml归档背后：Go开源生态的“脆弱”与“韧性”，我们该如何看待？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶...</description></item><item><title>Rob Pike的“抱怨”与Go的“解药”：直面软件膨胀的四大根源</title><link>https://tonybai.com/2025/04/27/rob-pike-on-bloat/</link><pubDate>Sun, 27 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/27/rob-pike-on-bloat/</guid><description>Rob Pike的“抱怨”与Go的“解药”：直面软件膨胀的四大根源 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ...</description></item><item><title>Go应用的K8s“最佳拍档”：何时以及如何用好多容器Pod模式</title><link>https://tonybai.com/2025/04/24/multiple-containers-pod-pattern/</link><pubDate>Thu, 24 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/24/multiple-containers-pod-pattern/</guid><description>Go应用的K8s“最佳拍档”：何时以及如何用好多容器Pod模式 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ *...</description></item><item><title>Go 1.25新提案：GOMAXPROCS默认值将迎Cgroup感知能力，终结容器性能噩梦？</title><link>https://tonybai.com/2025/04/09/gomaxprocs-defaults-add-cgroup-aware/</link><pubDate>Wed, 09 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/09/gomaxprocs-defaults-add-cgroup-aware/</guid><description>Go 1.25新提案：GOMAXPROCS默认值将迎Cgroup感知能力，终结容器性能噩梦？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ...</description></item><item><title>体验Gemini Deep Research：以Go语言未来演进方向分析为例</title><link>https://tonybai.com/2025/03/16/gemini-deep-research-experience/</link><pubDate>Sun, 16 Mar 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/03/16/gemini-deep-research-experience/</guid><description>本文永久链接 – https://tonybai.com/2025/03/16/gemini-deep-research-experience 基于大模型的AI已进入深度思考时代，以DeepSeek R1模型为代表的开源模型给主流AI厂商带来了巨大压力。其实早在2024年12月份，Google就在一篇名为“Try Deep Research and our new experimental mod...</description></item><item><title>从DevOps到日常脚本：聊聊Go语言的多面性</title><link>https://tonybai.com/2024/10/08/go-languages-versatility-from-devops-to-daily-scripts/</link><pubDate>Tue, 08 Oct 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/10/08/go-languages-versatility-from-devops-to-daily-scripts/</guid><description>本文永久链接 – https://tonybai.com/2024/10/08/go-languages-versatility-from-devops-to-daily-scripts 2024年初，TIOBE编程语言排行榜上，Go再次进入了前十，并在之后又成功冲高至第七名。 Go语言的排名上升，至少在Reddit Go论坛上帖子数量和在线人数上得到了体现，尽管目前与Rust热度仍有差距，但可见...</description></item><item><title>都2024年了，当初那个“Go，互联网时代的C语言”的预言成真了吗？</title><link>https://tonybai.com/2024/08/17/go-the-c-language-of-the-internet-era-come-true/</link><pubDate>Sat, 17 Aug 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/08/17/go-the-c-language-of-the-internet-era-come-true/</guid><description>都2024年了，当初那个“Go，互联网时代的C语言”的预言成真了吗？ | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表...</description></item><item><title>Go团队的工作方式</title><link>https://tonybai.com/2024/06/22/how-things-get-done-on-the-go-team/</link><pubDate>Sat, 22 Jun 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/06/22/how-things-get-done-on-the-go-team/</guid><description>Go团队的工作方式 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 Go团队的工作方式 ========= * 六月...</description></item><item><title>从零到生产：Go在Google的历程[译]</title><link>https://tonybai.com/2024/04/24/go-journey-at-google/</link><pubDate>Wed, 24 Apr 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/04/24/go-journey-at-google/</guid><description>本文永久链接 – https://tonybai.com/2024/04/24/go-journey-at-google 2007年Go诞生于Google，2009年Google正式对外宣布了Go语言的开源！时至今日，距离Go开源已经过去了近15个年头了！Go在Google公司内部究竟是怎样的一个状态呢？前Google员工Yves Junqueira近期撰文从其个人所见所闻谈了Go在Google的...</description></item><item><title>通过实例理解Web应用的机密管理</title><link>https://tonybai.com/2023/11/08/understand-go-web-secret-management-by-example/</link><pubDate>Wed, 08 Nov 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/11/08/understand-go-web-secret-management-by-example/</guid><description>本文永久链接 – https://tonybai.com/2023/11/08/understand-go-web-secret-management-by-example 如果你是一个Web应用系统的开发人员，你的日常大概率是“乐此不疲”地做着CRUD的活儿，很少接触到安全方面的内容。如果这时有人和你提到“机密(信息)管理(secret management)”，你大概率会说：那是啥？和我有关系...</description></item><item><title>Service Weaver：以单体形式编码，以微服务形式部署</title><link>https://tonybai.com/2023/10/09/service-weaver-coding-in-monolithic-deploy-in-microservices/</link><pubDate>Mon, 09 Oct 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/10/09/service-weaver-coding-in-monolithic-deploy-in-microservices/</guid><description>本文永久链接 – https://tonybai.com/2023/10/09/service-weaver-coding-in-monolithic-deploy-in-microservices 分布式应用的主流架构模式演化为**微服务架构**已经有些年头了。微服务、DevOps、持续交付和容器技术(k8s)是构成最初云原生概念的核心要素。它们相生相拌，共同演进，并推动了云计算**全面进入云原...</description></item><item><title>十分钟入门Go语言</title><link>https://tonybai.com/2023/02/23/learn-go-in-10-min/</link><pubDate>Thu, 23 Feb 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/02/23/learn-go-in-10-min/</guid><description>本文永久链接 – https://tonybai.com/2023/02/23/learn-go-in-10-min 本文旨在带大家快速入门Go语言，期望小伙伴们在花费十分钟左右通读全文后能对Go语言有一个初步的认知，为后续进一步深入学习Go奠定基础。 本文假设你完全没有接触过Go，你可能是一名精通其他编程语言的程序员，也可能是毫无编程经验、刚刚想转行为码农的热血青年。 编程简介 ---- 编程就...</description></item><item><title>2022年博客回顾与总结</title><link>https://tonybai.com/2023/01/11/2022-blog-summary/</link><pubDate>Wed, 11 Jan 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/01/11/2022-blog-summary/</guid><description>本文永久链接 – https://tonybai.com/2023/01/11/2022-blog-summary 2022年对我来说，也是**十分忙碌和充实的一年**。尽管和2021年相比，成果物没那么多^\_^。 伴随着二宝的长大，我发现自己的闲暇时间被进一步“压缩”，还好大宝上初中后领悟到了自驱学习的重要性和相关方法后，她的学习现在基本不需要我过问了。 2022年初，《Go语言精进之路：从新...</description></item><item><title>slog：Go官方版结构化日志包</title><link>https://tonybai.com/2022/10/30/first-exploration-of-slog/</link><pubDate>Sun, 30 Oct 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/10/30/first-exploration-of-slog/</guid><description>本文永久链接 – https://tonybai.com/2022/10/30/first-exploration-of-slog * * * Go自诞生以来就在其标准库内置了log包作为Go源码输出日志的标准组件，该包被广泛应用于Go标准库自身以及Go社区项目中。 不过，针对Go标准库log包，Go社区要求改进的声音始终不断，主流声音聚焦在以下几点： * log包是为了方便人类可读而设计的，不支...</description></item><item><title>使用viper实现yaml配置文件的合并</title><link>https://tonybai.com/2022/09/20/use-viper-to-do-merge-of-yml-configuration-files/</link><pubDate>Tue, 20 Sep 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/09/20/use-viper-to-do-merge-of-yml-configuration-files/</guid><description>本文永久链接 – https://tonybai.com/2022/09/20/use-viper-to-do-merge-of-yml-configuration-files 作为小厂，我们的基础设施还不够完备，项目经理中秋节通知我们的系统近期要上second-to-last stage环境和生产环境，于是从运维人员部署效率方面考量，我们紧急开发了一个一键安装脚本生成工具，这样运维人员便可以利用...</description></item><item><title>使用Go开发Kubernetes Operator：基本结构</title><link>https://tonybai.com/2022/08/15/developing-kubernetes-operators-in-go-part1/</link><pubDate>Mon, 15 Aug 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/08/15/developing-kubernetes-operators-in-go-part1/</guid><description>本文永久链接 – https://tonybai.com/2022/08/15/developing-kubernetes-operators-in-go-part1 &amp;gt; 注：文章首图基于《Kubernetes Operators Explained》修改 几年前，我还称Kubernetes为服务编排和容器调度领域的事实标准，如今K8s已经是这个领域的“霸主”，地位无可撼动。不过，虽然Kubern...</description></item><item><title>使用Go语言实现eBPF程序内核态与用户态的双向数据交换</title><link>https://tonybai.com/2022/07/25/bidirectional-data-exchange-between-kernel-and-user-states-of-ebpf-programs-using-go/</link><pubDate>Mon, 25 Jul 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/07/25/bidirectional-data-exchange-between-kernel-and-user-states-of-ebpf-programs-using-go/</guid><description>本文永久链接 – https://tonybai.com/2022/07/25/bidirectional-data-exchange-between-kernel-and-user-states-of-ebpf-programs-using-go 在之前的两篇文章中，无论是使用C语言开发eBPF程序，还是使用Go开发的eBPF程序，都是hello world级别的，可能有用，但谈不上十分实用。 ...</description></item><item><title>使用Go语言开发eBPF程序</title><link>https://tonybai.com/2022/07/19/develop-ebpf-program-in-go/</link><pubDate>Tue, 19 Jul 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/07/19/develop-ebpf-program-in-go/</guid><description>本文永久链接 – https://tonybai.com/2022/07/19/develop-ebpf-program-in-go 在前面的《使用C语言从头开发一个Hello World级别的eBPF程序》一文中，我们详细说明了如何基于C语言和libbpf库从头开发一个eBPF程序(包括其用户态部分)。那篇文章是后续有关eBPF程序开发文章的基础，因为到目前为止，无论eBPF程序的用户态部分用什...</description></item><item><title>使用C语言从头开发一个Hello World级别的eBPF程序</title><link>https://tonybai.com/2022/07/05/develop-hello-world-ebpf-program-in-c-from-scratch/</link><pubDate>Tue, 05 Jul 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/07/05/develop-hello-world-ebpf-program-in-c-from-scratch/</guid><description>本文永久链接 – https://tonybai.com/2022/07/05/develop-hello-world-ebpf-program-in-c-from-scratch * * * 近两年最火的Linux内核技术非eBPF莫属！ 2019年以来，除了eBPF技术自身快速演进之外，基于eBPF技术的观测(Observability)、安全(Security)和网络(Networking)...</description></item><item><title>Go编程语言与环境：万字长文复盘导致Go语言成功的那些设计决策[译]</title><link>https://tonybai.com/2022/05/04/the-paper-of-go-programming-language-and-environment/</link><pubDate>Wed, 04 May 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/05/04/the-paper-of-go-programming-language-and-environment/</guid><description>本文永久链接 – https://tonybai.com/2022/05/04/the-paper-of-go-programming-language-and-environment 美国计算机学会通讯(Communications of the ACM)期刊2022年5月第65卷第5期将发表一篇有关Go语言的综述类Paper：《Go编程语言与环境》，这类综述类文章只有资深的Go核心团队的人才“...</description></item><item><title>Go社区主流Kafka客户端简要对比</title><link>https://tonybai.com/2022/03/28/the-comparison-of-the-go-community-leading-kakfa-clients/</link><pubDate>Mon, 28 Mar 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/03/28/the-comparison-of-the-go-community-leading-kakfa-clients/</guid><description>本文永久链接 – https://tonybai.com/2022/03/28/the-comparison-of-the-go-community-leading-kakfa-clients 一. 背景 众所周知，Kafka是Apache开源基金会下的明星级开源项目，作为一个开源的分布式事件流平台，它被成千上万的公司用于高性能数据管道、流分析、数据集成和关键任务应用。在国内，无论大厂小厂，无论是...</description></item><item><title>Gopher部落：2022年要做的事儿</title><link>https://tonybai.com/2022/03/06/the-2022-plan-of-gopher-tribe/</link><pubDate>Sun, 06 Mar 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/03/06/the-2022-plan-of-gopher-tribe/</guid><description>本文永久链接 – https://tonybai.com/2022/03/06/the-2022-plan-of-gopher-tribe 2021年末，我对Gopher部落知识星球的这一年进行了简单的复盘。2022年初，我陆续收到知识星球官方的一些排名数据： 这些数据让我对2022年星球的运营更加有信心了！那么，2022年Gopher部落知识星球会有哪些变化呢？在本文中，我就来说一说这方面内容。...</description></item><item><title>使用Docker Compose构建一键启动的运行环境</title><link>https://tonybai.com/2021/11/26/build-all-in-one-runtime-environment-with-docker-compose/</link><pubDate>Fri, 26 Nov 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/11/26/build-all-in-one-runtime-environment-with-docker-compose/</guid><description>本文永久链接 – https://tonybai.com/2021/11/26/build-all-in-one-runtime-environment-with-docker-compose 如今，不管你是否喜欢，不管你是否承认，微服务架构模式的流行就摆在那里。作为架构师的你，如果再将系统设计成个大单体结构，那么即便不懂技术的领导，都会给你送上几次白眼。好吧，妥协了！开拆！“没吃过猪肉，还没见过...</description></item><item><title>Go语言之父谈Go编程语言与环境</title><link>https://tonybai.com/2021/10/06/the-go-programming-language-and-environment/</link><pubDate>Wed, 06 Oct 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/10/06/the-go-programming-language-and-environment/</guid><description>本文永久链接 – https://tonybai.com/2021/10/06/the-go-programming-language-and-environment 2021年中旬，Go语言联合创始人Rob Pike应邀在线出席由UNSW Computing(悉尼新南威尔士大学计算机)组织主办的John Lions Distinguished Lectures，会上Rob Pike以Go之父身份...</description></item><item><title>minikube v1.20.0版本的一个bug</title><link>https://tonybai.com/2021/05/14/a-bug-of-minikube-1-20/</link><pubDate>Fri, 14 May 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/05/14/a-bug-of-minikube-1-20/</guid><description>本文永久链接 – https://tonybai.com/2021/05/14/a-bug-of-minikube-1-20 近期在研究dapr(分布式应用运行时)，这是一个很朴素却很棒的想法，目前大厂，如阿里和鹅厂都有大牛在研究该项目，甚至是利用dapr落地了部分应用。关于dapr，后续我也会用单独的文章详细说说。 dapr不仅支持k8s部署，还支持本地部署，并可以对接多个世界知名的公有云厂商的...</description></item><item><title>Rust vs. Go：为什么强强联合会更好</title><link>https://tonybai.com/2021/03/15/rust-vs-go-why-they-are-better-together/</link><pubDate>Mon, 15 Mar 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/03/15/rust-vs-go-why-they-are-better-together/</guid><description>本文翻译自乔纳森·特纳（Jonathan Turner）和史蒂夫·弗朗西亚（Steve Francia）的文章《Rust vs. Go: Why They’re Better Together》。 &amp;gt; 史蒂夫·弗朗西亚（Steve Francia）：在过去的25年里，Steve Francia建立了一些最具创新性和成功的技术和公司，这些技术和公司已经成为云计算的基础，被全世界的企业和开发者所接受。...</description></item><item><title>究竟是什么让Go语言成为恶意软件作者的最爱</title><link>https://tonybai.com/2021/03/07/go-malware-round-up-2020/</link><pubDate>Sun, 07 Mar 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/03/07/go-malware-round-up-2020/</guid><description>2020年5月份，Go语言之父Rob Pike接受了evrone.com的专访。当Rob Pike老爷子被问及多年来他看到过最奇怪、最有创意或有趣的Go用法或最让他惊讶的是什么时，老爷子是这么回答的： &amp;gt; Rob：最大的惊喜是当我们得知Go被用于编写恶意软件时。您无法控制谁将使用您的作品或他们将如何使用它。 近期安全技术公司Intezer发布了一份名为《Year of the Gopher, A ...</description></item><item><title>Go语言很无聊…其实它妙不可言！[译]</title><link>https://tonybai.com/2021/01/07/go-is-boring/</link><pubDate>Thu, 07 Jan 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/01/07/go-is-boring/</guid><description>&amp;gt; 无聊是一种很奇妙的状态，它可以稀释掉人类的一切情感。- 《古董局中局》马伯庸 在GopherCon 2020技术大会上(线上虚拟大会)，Jon Bodner为全球gopher们做了主题为“Go Is Boring”的精彩演讲(关注公众号**iamtonybai**，发送**gophercon2020**即可得到GopherCon 2020技术大会幻灯片资料)。 其实早在2020年6月，Jon ...</description></item><item><title>Hugo作者、Go核心开发团队成员谈诞生13年的Go语言：生态系统、演化与未来[译]</title><link>https://tonybai.com/2021/01/02/go-language-13-years/</link><pubDate>Sat, 02 Jan 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/01/02/go-language-13-years/</guid><description>本文翻译自《Go Language at 13 Years: Ecosystem, Evolution, and Future in Conversation with Steve Francia》。 &amp;gt; 译注：Go开源于2009年，如果从那时算起，Go才11岁；但在Go核心开发团队眼中，Go的真正诞生年份是2007年，至今13个年头了。关于Go的演化简史可以参见我的专栏文章：《Go语言的前生今世...</description></item><item><title>系统学习Go语言，有这几本书就够了！</title><link>https://tonybai.com/2020/11/04/the-recommend-books-list-for-learning-go/</link><pubDate>Wed, 04 Nov 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/11/04/the-recommend-books-list-for-learning-go/</guid><description>1\. Go语言的发展现状 如果从2007年9月20日那个下午三个“程序员大佬”在谷歌总部的一间办公室里进行的一次有关设计一门新编程语言的讨论算起，那么Go语言已经度过了自己的13个年头了。 Robert Griesemer、Rob Pike和Ken Thompson 如果从2009年11月10日Go语言正式开源发布算起，Go语言也即将迎来自己的第11个生日。 2020年，Go联合创始人Rob P...</description></item><item><title>官宣：Go专栏“改善Go语言编程质量的50个有效实践”上线了</title><link>https://tonybai.com/2020/09/08/imooc-go-column-is-available/</link><pubDate>Tue, 08 Sep 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/09/08/imooc-go-column-is-available/</guid><description>断断续续写了一年多的Go专栏：《改善Go语言编程质量的50个有效实践》今天终于正式上线了！- https://www.imooc.com/read/87 慕课专栏：《改善Go语言编程质量的50个有效实践》 Go语言是Google大牛团队(Robert Griesemer、Rob Pike以及Ken Thompson)设计的一种静态类型、编译型编程语言，支持垃圾回收和轻量级并发，它于2009年11月...</description></item><item><title>Go语言联合作者Rob Pike专访：Go确实已成为云基础架构的语言</title><link>https://tonybai.com/2020/05/01/rob-pike-interview-go-become-the-language-of-cloud-infrastructure/</link><pubDate>Fri, 01 May 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/05/01/rob-pike-interview-go-become-the-language-of-cloud-infrastructure/</guid><description>&amp;gt; 尽管看到Docker，Kubernetes和用Go编写的云计算的许多其他组件令人欣喜和重要，但也许并不奇怪。Go确实已经成为云基础架构的语言。- Rob Pike，Go编程语言的联合作者 本文翻译自《Rob Pike interview: “Go has indeed become the language of cloud infrastructure”》。 简介 -- 我们与Go编程语言之...</description></item><item><title>Hello，WireGuard</title><link>https://tonybai.com/2020/03/29/hello-wireguard/</link><pubDate>Sun, 29 Mar 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/03/29/hello-wireguard/</guid><description>2020年1月28日，Linux之父Linus Torvalds正式将WireGuard merge到Linux 5.6版本内核主线： 图：WireGuard被加入linux kernel 5.6主线的commit log 这意味着在Linux 5.6内核发布时，linux在内核层面将**原生**支持一个新的VPN协议栈：WireGuard。 图：WireGuard Logo 一. VPN与Wir...</description></item><item><title>Kubernetes Deployment故障排除图解指南</title><link>https://tonybai.com/2019/12/08/k8s-deployment-troubleshooting/</link><pubDate>Sun, 08 Dec 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/12/08/k8s-deployment-troubleshooting/</guid><description>* * * 下面是一个示意图，可帮助你调试Kubernetes Deployment（你可以在此处下载它的PDF版本）。 当你希望在Kubernetes中部署应用程序时，你通常会定义三个组件： * 一个**Deployment** – 这是一份用于创建你的应用程序的Pod副本的”食谱”； * 一个**Service** – 一个内部负载均衡器，用于将流量路由到内部的Pod上； * 一个**Ingr...</description></item><item><title>Go语言开源十周年</title><link>https://tonybai.com/2019/11/09/go-opensource-10-years/</link><pubDate>Sat, 09 Nov 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/11/09/go-opensource-10-years/</guid><description>本文翻译自Go官方博客上Russ Cox代表Go核心团队发表的“Go Turns 10″一文。 **生日快乐，Go！** 这个周末，我们庆祝Go正式对外发布10周年，即Go作为开源编程语言和构建现代网络软件生态系统的10周年诞辰。 为了纪念这一时刻，Go gopher的创建者Renee French(用下面的新作)描绘了这个令人愉快的场景： 庆祝Go十周年让我回想起2009年11月上旬，那时我们正...</description></item><item><title>Go语言项目的安全评估技术</title><link>https://tonybai.com/2019/11/08/security-assessment-techniques-for-go-projects/</link><pubDate>Fri, 08 Nov 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/11/08/security-assessment-techniques-for-go-projects/</guid><description>在今年夏天我们对Kubernetes的评估成功之后，我们收到了大量Go项目的安全评估需求。为此，我们将在其他编译语言中使用过的安全评估技术和策略调整适配到多个Go项目中。 我们从了解语言的设计开始，识别出开发人员可能无法完全理解语言语义特性的地方。多数这些被误解的语义来自我们向客户报告的调查结果以及对语言本身的独立研究。尽管不是详尽无遗，但其中一些问题领域包括作用域、协程、错误处理和依赖管理。值得...</description></item><item><title>如何在Ubuntu 18.04 Server上部署Kubernetes集群</title><link>https://tonybai.com/2019/10/21/how-to-deploy-a-kubernetes-cluster-with-ubuntu-server-18-04/</link><pubDate>Mon, 21 Oct 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/10/21/how-to-deploy-a-kubernetes-cluster-with-ubuntu-server-18-04/</guid><description>如今，你几乎不可避免地会听到来自Kubernetes的发声，你更没有充分的理由拒绝去听。 一旦一切就绪，这个强大的容器编排工具将以您难以想象的敏捷性来扩展您的操作。 为了实际使用Kubernetes进行部署和管理容器，您首先必须创建Kubernetes服务器集群。 一旦集群建立后，您就能够部署，扩展和管理您的容器化应用程序了。 在Ubuntu Server 18.04的帮助下，我将引导您完成此过程...</description></item><item><title>在Kubernetes上如何基于自定义指标实现应用的自动缩放</title><link>https://tonybai.com/2019/10/11/autoscaling-apps-on-kubernetes/</link><pubDate>Fri, 11 Oct 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/10/11/autoscaling-apps-on-kubernetes/</guid><description>如何在Kubernetes上实现应用缩放？ --------------------- 使用静态配置将应用程序部署到生产环境并不是最佳选择。 流量模式可能会快速变化，应用程序应该能够实现自适应： * 当需求增加时，应用程序应扩大规模（增加副本数）以保持响应速度。 * 当需求减少时，应用程序应缩小规模（减少副本数量），以免浪费资源。 Kubernetes以Horizontal Pod Autosca...</description></item><item><title>构建Kubernetes集群 – 选择工作节点大小</title><link>https://tonybai.com/2019/09/05/kubernetes-node-size/</link><pubDate>Thu, 05 Sep 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/09/05/kubernetes-node-size/</guid><description>&amp;gt; 近期learnk8s网站上发布了一些关于k8s的好文章，这里搬运并翻译了一些，供大家参考。 本文翻译自《Architecting Kubernetes clusters — choosing a worker node size》。 **当您创建Kubernetes集群时，冒出的第一个问题之一是：“我应该使用哪种类型的工作节点以及需要多少个这样的节点”。** 如果您正在构建在内部部署的k8s集...</description></item><item><title>提高您的kubectl生产力（第三部分）：集群上下文切换、使用别名减少输入和插件扩展</title><link>https://tonybai.com/2019/08/31/kubectl-productivity-part3/</link><pubDate>Sat, 31 Aug 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/08/31/kubectl-productivity-part3/</guid><description>本文翻译自《Boosting your kubectl productivity》。 第一部分：什么是kubectl？ 第二部分：命令完成、资源规范快速查看和自定义列输出格式什么是kubectl？ 4\. 轻松切换集群和名称空间 --------------- 当kubectl必须向Kubernetes API发出请求时，它会读取系统上所谓的kubeconfig文件，以获取它需要访问的所有连接参数...</description></item><item><title>提高您的kubectl生产力（第二部分）：命令完成、资源规范快速查看和自定义列输出格式</title><link>https://tonybai.com/2019/08/30/kubectl-productivity-part2/</link><pubDate>Fri, 30 Aug 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/08/30/kubectl-productivity-part2/</guid><description>本文翻译自《Boosting your kubectl productivity》。 第一部分：什么是kubectl？ 1\. 通过命令完成(command completion)减少输入 ---------------------------------- 命令完成是提高你的kubectl生产力的最有用但经常被忽视的技巧之一。 命令完成允许您使用Tab键自动完成kubectl命令的各个部分。这适...</description></item><item><title>提高您的kubectl生产力（第一部分）：什么是kubectl</title><link>https://tonybai.com/2019/08/29/kubectl-productivity-part1/</link><pubDate>Thu, 29 Aug 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/08/29/kubectl-productivity-part1/</guid><description>本文翻译自《Boosting your kubectl productivity》。 如果您使用Kubernetes，那么kubectl可能是您最常用的工具之一。每当您花费大量时间使用某种特定工具时，值得深入了解并了解如何有效地使用它。 本文包含一系列提示和技巧，使您对kubectl的使用更加高效和有效。同时，它旨在加深您对Kubernetes各方面工作的理解。 本文的目标是让您在Kubernet...</description></item><item><title>Go module机制下升级major版本号的实践</title><link>https://tonybai.com/2019/06/03/the-practice-of-upgrading-major-version-under-go-module/</link><pubDate>Mon, 03 Jun 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/06/03/the-practice-of-upgrading-major-version-under-go-module/</guid><description>Go module机制在Go 1.11版本引入，虽然也伴随着不小的质疑声，但总体上Go社区多数Gopher是接受go module的，很多标杆式的Go项目(比如kubernetes、kubernetes client-go等)也都逐渐转向了Go module，并且Gopher也在向core team反馈了自己的建议和问题。Go core team也在go module最初设计的基础上持续进行着改进...</description></item><item><title>Go正走在成为下一个企业级编程语言的轨道上</title><link>https://tonybai.com/2019/05/03/go-is-on-a-trajectory-to-become-the-next-enterprise-programming-language/</link><pubDate>Fri, 03 May 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/05/03/go-is-on-a-trajectory-to-become-the-next-enterprise-programming-language/</guid><description>发展演化了十年的Go语言已经被证明了是云计算时代的首选编程语言，但Go的用武之地显然不局限于此。Kevin Goslar近期在Hacker Noon发表了一篇名为：《Go is on a Trajectory to Become the Next Enterprise Programming Language》的文章，阐述了Go可能成为下一个企业编程语言的理由，这里是那篇文章的中文译文，分享给大家...</description></item><item><title>使用nomad在weave网络中部署工作负载</title><link>https://tonybai.com/2019/04/20/deploy-workload-in-weave-network-using-nomad/</link><pubDate>Sat, 20 Apr 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/04/20/deploy-workload-in-weave-network-using-nomad/</guid><description>当初Kubernetes网络的设计目标是**使得开发者使用pod时在网络这一层面可以像使用传统物理主机或虚拟机一样**。具体的基本要求如下： * 所有pod间均应可以在无需NAT的情况下直接通信； * 所有集群节点与所有集群的Pod之间均应可以在无需NAT的情况下直接通信； * 容器自身的地址和其他pod看到的它的地址是同一个地址； 按照这样的要求，集群中的每个pod都在一个平坦的、共享网络命名空...</description></item><item><title>Kubernetes网络插件（CNI）基准测试的最新结果</title><link>https://tonybai.com/2019/04/18/benchmark-result-of-k8s-network-plugin-cni/</link><pubDate>Thu, 18 Apr 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/04/18/benchmark-result-of-k8s-network-plugin-cni/</guid><description>本文翻译自Alexis Ducastel的文章《Benchmark results of Kubernetes network plugins (CNI) over 10Gbit/s network (Updated: April 2019)》。 本文是我之前的基准测试的最新更新，这次测试在最新版Kubernetes 1.14上运行，其中CNI版本在2019年4月更新。 首先，非常感谢Cilium...</description></item><item><title>使用nomad实现工作负载版本升级</title><link>https://tonybai.com/2019/04/09/upgrade-workload-using-nomad/</link><pubDate>Tue, 09 Apr 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/04/09/upgrade-workload-using-nomad/</guid><description>书接上文。 在《使用nomad实现集群管理和微服务部署调度》一文中，我们介绍了使用nomad进行集群管理和工作负载调度的轻量级方案（相较于Kubernetes方案）。在本文中，我们继续对方案进行延展，介绍一下在nomad集群中工作负载版本升级的一些常用模式和实现方法，包括滚动升级、蓝绿部署和金丝雀部署。 一. 初始状态 ------- 这里我们利用基于tcp+sni路由(listener端口为99...</description></item><item><title>使用nomad实现集群管理和微服务部署调度</title><link>https://tonybai.com/2019/03/30/cluster-management-and-microservice-deployment-and-scheduled-by-nomad/</link><pubDate>Sat, 30 Mar 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/03/30/cluster-management-and-microservice-deployment-and-scheduled-by-nomad/</guid><description>在“云原生”、“容器化”、“微服务”、“服务网格”等概念大行其道的今天，一提到集群管理、容器工作负载调度，人们首先想到的是Kubernetes。 Kubernetes经过多年的发展，目前已经成为了云原生计算平台的事实标准，得到了诸如谷歌、微软、红帽、亚马逊、IBM、阿里等大厂的大力支持，各大云计算提供商也都提供了专属Kubernetes集群服务。开发人员可以**一键**在这些大厂的云上创建k8s集...</description></item><item><title>YAML入门：以创建一个Kubernetes deployment为例</title><link>https://tonybai.com/2019/02/25/introduction-to-yaml-creating-a-kubernetes-deployment/</link><pubDate>Mon, 25 Feb 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/02/25/introduction-to-yaml-creating-a-kubernetes-deployment/</guid><description>YAML语言似乎已经成为了事实标准的“云配置”语言，无论是容器事实标准docker(主要是docker-compose使用)、SDN，还是容器编排王者kubernetes，又或是虚拟机时代的王者openstack采用的配置文件都是yaml文件格式。不过需要承认的是我个人最初刚接触yaml时还不是很适应（个人更适应json），在后续运维kubernetes时，每每都要去参考k8s doc中的各种k8...</description></item><item><title>Hello，Go module proxy</title><link>https://tonybai.com/2018/11/26/hello-go-module-proxy/</link><pubDate>Mon, 26 Nov 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/11/26/hello-go-module-proxy/</guid><description>一. Go module引入的幸福与“无奈” ---------------------- 在《Go 1.11中值得关注的几个变化》一文中，我们知道了Go语言通过引入module的概念进而引入了Go tool的另外一种工作模式module-aware mode。在新的工作模式下，Go module支持了Versioned Go，并初步解决了包依赖管理的问题。 对于全世界绝大多数Gophers来说，...</description></item><item><title>Go 1.11中值得关注的几个变化</title><link>https://tonybai.com/2018/11/19/some-changes-in-go-1-11/</link><pubDate>Mon, 19 Nov 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/11/19/some-changes-in-go-1-11/</guid><description>转眼间又近年底，距8月25日Go 1.11版本正式发布已过去快三个月了。由于种种原因，Go语言发布变化系列的Go 1.11版本没能及时放出。近期网课发布上线后，个人时间压力稍缓和。又恰看到近期Go 1.12 release note的initial version已经加入到master，于是这篇文章便上升到个人Todo list的Top3的位置，我也尽一切可能的碎片时间收集素材，撰写文章内容。这个...</description></item><item><title>官宣：慕课网课程“Kubernetes实战：高可用集群搭建、配置、运维与应用”上线了</title><link>https://tonybai.com/2018/10/17/imooc-course-kubernetes-practice-go-online/</link><pubDate>Wed, 17 Oct 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/10/17/imooc-course-kubernetes-practice-go-online/</guid><description>距离我的第一门网课《Kubernetes基础：开启云原生之门》上线已经过去5个多月了，我的实战课《Kubernetes实战：高可用集群搭建、配置、运维与应用》终于在9月27日正式上线了。 一. 课程介绍 《Kubernetes实战：高可用集群搭建、配置、运维与应用》的课程内容与最初课程设计时规划的内容大纲没有太多出入，基本就是根据我最初的想法拟定的内容，**这也基本是我这两年学习k8s、积累的k8...</description></item><item><title>基于consul实现微服务的服务发现和负载均衡</title><link>https://tonybai.com/2018/09/10/setup-service-discovery-and-load-balance-based-on-consul/</link><pubDate>Mon, 10 Sep 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/09/10/setup-service-discovery-and-load-balance-based-on-consul/</guid><description>一. 背景 ----- 随着2018年年初国务院办公厅联合多个部委共同发布了《国务院办公厅关于促进“互联网+医疗健康”发展的意见(国办发〔2018〕26号)》，国内医疗IT领域又迎来了一波互联网医院建设的高潮。不过互联网医院多基于实体医院建设，虽说挂了一个“互联网”的名号，但互联网医院系统也多与传统的院内系统，比如：HIS、LIS、PACS、EMR等共享院内的IT基础设施。 如果你略微了解过国内医...</description></item><item><title>HTTPS服务的Kubernetes ingress配置实践</title><link>https://tonybai.com/2018/06/25/the-kubernetes-ingress-practice-for-https-service/</link><pubDate>Mon, 25 Jun 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/06/25/the-kubernetes-ingress-practice-for-https-service/</guid><description>在公有云被广泛接纳的今天，数据传输安全问题日益凸显，因为在公有云提供商的经典网络（二层互通）中，即便是内部网络通信也要考虑网络嗅探等hack手段，这也是公有云主推所谓“专用网络（二层隔离）”的原因之一。从应用的角度，我们应该尽量通过技术手段保证数据通信的安全性。而目前最常用的方式就是基于SSL/TLS的安全通信方式了，在七层，对应的就是https了。 这样，下面的仅在负载均衡/反向代理入口做加密通...</description></item><item><title>实践kubernetes ingress controller的四个例子</title><link>https://tonybai.com/2018/06/21/kubernetes-ingress-controller-practice-using-four-examples/</link><pubDate>Thu, 21 Jun 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/06/21/kubernetes-ingress-controller-practice-using-four-examples/</guid><description>我之前并未使用过标准的Kubernetes ingress，而是自己实现了一个基于nginx的、类似ingress controller的服务入口管理程序nginx-kit。这个程序会部署到Kubernetes集群中，以Pod形式运行。该Pod由两个Container组成，一个Container放置了一个由脚本启动的nginx；另外一个Container中放置的是一个conf generator程...</description></item><item><title>使用kubectl访问Kubernetes集群时的身份验证和授权</title><link>https://tonybai.com/2018/06/14/the-authentication-and-authorization-of-kubectl-when-accessing-k8s-cluster/</link><pubDate>Thu, 14 Jun 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/06/14/the-authentication-and-authorization-of-kubectl-when-accessing-k8s-cluster/</guid><description>kubectl是日常访问和管理Kubernetes集群最为常用的工具。 当我们使用kubeadm成功引导启动(init)一个Kubernetes集群的控制平面后，kubeadm会在init的输出结果中给予我们下面这样的“指示”： ... ... Your Kubernetes master has initialized successfully! To start using your clus...</description></item><item><title>在Kubernetes 1.10.3上以Hard模式搭建EFK日志分析平台</title><link>https://tonybai.com/2018/06/13/setup-efk-on-kubernetes-1-10-3-in-the-hard-way/</link><pubDate>Wed, 13 Jun 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/06/13/setup-efk-on-kubernetes-1-10-3-in-the-hard-way/</guid><description>在一年多之前，我曾写过一篇文章《使用Fluentd和ElasticSearch Stack实现Kubernetes的集群Logging》，文中讲解了如何在Kubernetes上利用EFK（elastic, fluentd, kibana）搭建一套可用的集中日志分析平台。当时的k8s使用的是1.3.7版本，创建EFK使用的是kubernetes项目中**cluster/addons/fluentd-...</description></item><item><title>慕课网免费课“Kubernetes：开启云原生之门”上线</title><link>https://tonybai.com/2018/05/02/imooc-course-kubernetes-open-the-gate-to-cloudnative-go-online/</link><pubDate>Wed, 02 May 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/05/02/imooc-course-kubernetes-open-the-gate-to-cloudnative-go-online/</guid><description>这两年一直在做一个基于Kubernetes的、用于互联网产品运营支撑的类PaaS平台，因此一直把自己定位为一个Kubernetes实践者：以Kubernetes为中心进行集群搭建、运维、k8s相关技术的理解与应用、k8s新技术的追踪和尝试落地等。不过就Kubernetes的深入程度来说，感觉自己和那些天天与k8s打交道的大厂专家或以容器云为卖点的技术专家还是有差距的。但是大厂专家每周996，闲暇时...</description></item><item><title>TB一周萃选[第10期]</title><link>https://tonybai.com/2018/03/03/10th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sat, 03 Mar 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/03/03/10th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**“TB一周萃选\[第10期\]”**的归档。 &amp;gt; 这个世界上最危险的毒药，就是成就感。而解药就是每晚都想一想，明天如何做得更好。 – 英格瓦坎普拉德，宜家创始人 2018年元宵节已过，这个传统意义上的年就算真的过完了，我们的那颗有些闲散、有些懈怠的心需要收一收，是时候为2018年的“事业”做些规划，从2018的起跑线上起跑出去了。就连现在的孩子，在开学第一课时都...</description></item><item><title>TB一周萃选[第9期]</title><link>https://tonybai.com/2018/02/11/9th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sun, 11 Feb 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/02/11/9th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**“TB一周萃选\[第9期\]”**的归档。 &amp;gt; 亲情犹如一江剪不断的春水，流动的是游子心中永远的思念；亲情犹如一丘数不尽的细沙，沉淀的是长年堆积的牵挂；亲情犹如夜空中那颗北斗，指引的是那迷路的羔羊回家的方向。忙碌了一年，该回家了，给心放个假，带上媳妇带上你的娃，回家看看那年迈的爸妈，出发！ — 改编自网络 此时此刻，很多人刚刚踏上了春节回家的旅途，有些人更是已经...</description></item><item><title>TB一周萃选[第8期]</title><link>https://tonybai.com/2018/02/03/8th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sat, 03 Feb 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/02/03/8th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**“TB一周萃选\[第8期\]”**的归档。 &amp;gt; 再看看那个光点，它就在这里。那是我们的家园，我们的一切。你所爱的每一个人，你认识的每一个人，你听说过的每一个人，曾经有过的每一个人，都在它上面度过他们的一生。我们的欢乐与痛苦聚集在一起，数以千计的自以为是的宗教、意识形态和经济学说，所有的猎人与强盗、英雄与懦夫、文明的缔造者与毁灭者、国王与农夫、年轻的情侣、母亲与父...</description></item><item><title>TB一周萃选[第6期]</title><link>https://tonybai.com/2018/01/20/6th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sat, 20 Jan 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/01/20/6th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**“TB一周萃选\[第6期\]”**的归档。 图：第6期封面 &amp;gt; 凡事欲其成功，必须付出代价——奋斗。 &amp;gt; — 美国作家 爱默生 每期挑选“封面图”都是一件颇为“费工夫”的事情，本期的封面图来自于一个投资界大V发送的微博内容，因为当我第一眼看到这幅图片时，感觉它**颇为契合我当时的心境**。 **“未来的一年里，连睡觉都是浪费时间”**这句话的最原始的出处在哪里我...</description></item><item><title>TB一周萃选[第5期]</title><link>https://tonybai.com/2018/01/14/5th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sun, 14 Jan 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/01/14/5th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**“TB一周萃选\[第5期\]”**的归档。 &amp;gt; 人生十鉴 &amp;gt; &amp;gt; 大喜易失言 &amp;gt; 大怒易失礼 &amp;gt; 大惊易失态 &amp;gt; 大哀易失颜 &amp;gt; 大乐易失察 &amp;gt; 大惧易失节 &amp;gt; 大思易失爱 &amp;gt; 大醉易失德 &amp;gt; 大话易失信 &amp;gt; 大欲易失命 下雪，是北方城市冬天的“常规操作”，是最不需要被单独关注的的事情。但今年冬天的“雪”却成为了这边的热门话题，原因：**自从入冬以来一直就没下一...</description></item><item><title>写Go代码时遇到的那些问题[第1期]</title><link>https://tonybai.com/2018/01/13/the-problems-i-encountered-when-writing-go-code-issue-1st/</link><pubDate>Sat, 13 Jan 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/01/13/the-problems-i-encountered-when-writing-go-code-issue-1st/</guid><description>程序员步入“大龄”，写代码的节奏也会受到影响。以前是长时间持续地写，现在写代码的节奏变成了“波浪形”：即写一段时间，歇一段时间。当然这里的“歇”并不是真的歇，而是做其他事情了，比如：回顾、整理与总结。 平时写Go代码，时不时就遇到一些问题，或是写出一些让自己还算满意的代码，这里全部列为“问题”行列。这些“问题”(以及其解决方法)往往比较“小”、比较“碎片”，不适合以自己“擅长”的“长篇”风格写出来...</description></item><item><title>TB一周萃选[第4期]</title><link>https://tonybai.com/2018/01/06/4th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sat, 06 Jan 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/01/06/4th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**“TB一周萃选\[第4期\]”**的归档。 &amp;gt; 孩子，我要求你读书用功，不是因为我要你跟别人比成绩，而是因为，我希望你将来会拥有选择的权利，选择有意义、有时间的工作，而不是被迫谋生。当你的工作在你心中有意义，你就有成就感。当你的工作给你时间，不剥夺你的生活，你就有尊严。成就感和尊严，给你快乐。——龙应台 《亲爱的安德烈》 这两天中原大地的一场大雪正式宣告了深冬的...</description></item><item><title>使用istio治理微服务入门</title><link>https://tonybai.com/2018/01/03/an-intro-of-microservices-governance-by-istio/</link><pubDate>Wed, 03 Jan 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/01/03/an-intro-of-microservices-governance-by-istio/</guid><description>近两年微服务架构流行，主流互联网厂商内部都已经微服务化，初创企业虽然技术积淀不行，但也通过各种开源工具拥抱微服务。再加上容器技术赋能，Kubernetes又添了一把火，微服务架构已然成为当前软件架构设计的首选。 **但微服务化易弄，服务治理难搞！** 一、微服务的“痛点” ---------- 微服务化没有统一标准，多数是进行业务领域垂直切分，业务按一定的粒度划分职责，并形成清晰、职责单一的服务接...</description></item><item><title>TB一周萃选[第3期]</title><link>https://tonybai.com/2017/12/30/3rd-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sat, 30 Dec 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/12/30/3rd-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**“TB一周萃选\[第3期\]”**的归档。 &amp;gt; 《岁旦》 &amp;gt; &amp;gt; &amp;gt; 宋伯仁 宋代诗人 &amp;gt; &amp;gt; 居间无贺客，早起只如常。桃版随人换，梅花隔岁香。 &amp;gt; 　　春风回笑语，云气卜丰穰。柏酒何劳劝，心平寿自长。 本期萃选是2017年的最后一期，也是迎接2018新年“承前启后”的一期。 对于现代中国人来说，公历新年又称为“元旦”。但稍有些历史常识的朋友都会知道：此“元旦”...</description></item><item><title>TB一周萃选[第2期]</title><link>https://tonybai.com/2017/12/22/2nd-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Fri, 22 Dec 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/12/22/2nd-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**TB一周萃选\[第2期\]**的归档。 封面 &amp;gt; “我天性不宜交际。 &amp;gt; &amp;gt; 在多数场合，我不是觉得对方乏味，就是害怕对方觉得我乏味。可是我既不愿忍受对方的乏味，也不愿费劲使自己显得有趣，那都太累了。 &amp;gt; &amp;gt; 我独处时最轻松，因为我不觉得自己乏味，即使乏味，也自己承受，不累及他人，无需感到不安。” ——周国平 本周日晚上就是平安夜了！ 圣诞节，是西方最重要的节日...</description></item><item><title>TB一周萃选[第1期]</title><link>https://tonybai.com/2017/12/17/1st-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sun, 17 Dec 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/12/17/1st-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章[TB一周萃选\[第1期\]](https://mp.weixin.qq.com/s?__biz=MzIyNzM0MDk0Mg==&amp;amp;mid=2247483848&amp;amp;idx=1&amp;amp;sn=a3cd9182a2b2d3716623cc2c43d59f37&amp;amp;chksm=e863e629df146f3f421f37672d25400bf6f7f52627bf72e99bf7fb7...</description></item><item><title>在Kubernetes集群上部署高可用Harbor镜像仓库</title><link>https://tonybai.com/2017/12/08/deploy-high-availability-harbor-on-kubernetes-cluster/</link><pubDate>Fri, 08 Dec 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/12/08/deploy-high-availability-harbor-on-kubernetes-cluster/</guid><description>关于基于Harbor的高可用私有镜像仓库，在我的博客里曾不止一次提到，在源创会2017沈阳站上，我还专门以此题目和大家做了分享。事后，很多人通过微博私信、个人公众号或博客评论问我是否可以在Kubernetes集群上安装高可用的Harbor仓库，今天我就用这篇文章来回答大家这个问题。 一、Kubernetes上的高可用Harbor方案 ------------------------- 首先，我可以...</description></item><item><title>再谈Docker容器单机网络：利用iptables trace和ebtables log</title><link>https://tonybai.com/2017/11/06/explain-docker-single-host-network-using-iptables-trace-and-ebtables-log/</link><pubDate>Mon, 06 Nov 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/11/06/explain-docker-single-host-network-using-iptables-trace-and-ebtables-log/</guid><description>这大半年一直在搞Kubernetes。每次搭建Kubernetes集群，或多或少都会被Kubernetes的“网络插件们”折腾折腾。因此，要说目前Kubernetes中最难搞的是什么？个人觉得莫过于其Pod网络了，至少也是最难搞的之一。除此之外，以Service和Pod为中心的Kubernetes架构还大量利用iptables规则来实现Service的反向代理和负载均衡，这又与Docker原生容器...</description></item><item><title>源创会开源访谈：十年成长，Go语言的演化之路</title><link>https://tonybai.com/2017/10/24/go-evolution-for-ten-years-an-interview-by-osc/</link><pubDate>Tue, 24 Oct 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/10/24/go-evolution-for-ten-years-an-interview-by-osc/</guid><description>在参加源创会沈阳站分享之前，接受了开源中国社区编辑王练的文字专访，以下是我针对专访稿的内容。 同时该专访稿首发于开源中国开源访谈栏目，大家可以点击这里看到首发原稿。 1、首先请介绍一下自己 大家好！我叫白明（Tony Bai），目前是东软云科技的一名架构师，专职于服务端开发，日常工作主要使用Go语言。我算是国内较早接触Go语言的程序员兼Advocater了，平时在我的博客、微博和微信公众号”iam...</description></item><item><title>Kubernetes节点资源耗尽状态的处理</title><link>https://tonybai.com/2017/10/16/out-of-node-resource-handling-in-kubernetes-cluster/</link><pubDate>Mon, 16 Oct 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/10/16/out-of-node-resource-handling-in-kubernetes-cluster/</guid><description>今天上午一到工位，就收到来自同事的“投诉”：私有云上的Kubernetes cluster中的一个node似乎不工作了，因为专门部署于那个节点上的应用挂掉了，并且长时间没有恢复。这个公司私有云上Kubernetes集群是v1.7.5版本，部署于双节假期之前。最近感觉K8s开发明显提速，连续发布版本，截至发稿时，最新发布的版本为v1.8.1了。这个集群一直运行相对稳定，今天这个异常到底是怎么一回事呢...</description></item><item><title>Kubernetes Dashboard 1.7.0部署二三事</title><link>https://tonybai.com/2017/09/26/some-notes-about-deploying-kubernetes-dashboard-1-7-0/</link><pubDate>Tue, 26 Sep 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/09/26/some-notes-about-deploying-kubernetes-dashboard-1-7-0/</guid><description>由于开发的平台要进行内部公开测试，我们这周在公司内部私有云搭建了一套平台。涉及到Kubernetes相关的基础软件，由我来部署。Kubernetes以及其相关组件都在积极的开发中，版本更新也很快。截至本文撰写时，K8s发布最新稳定版是v1.7.6，而与之配套的Dashboard则是v1.7.0。 最初在部署规划时，我选择了Kubernetes v1.7.6+ dashboard v1.6.3的组合...</description></item><item><title>Go语言：成长的十年</title><link>https://tonybai.com/2017/09/24/go-ten-years-and-climbing/</link><pubDate>Sun, 24 Sep 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/09/24/go-ten-years-and-climbing/</guid><description>Go语言之父，Google大神Rob Pike代表Go语言的另外两位缔造者Robert Griesemer和Ken Thompson在自己的博客上发表了一篇名为《Go: Ten years and climbing》的文章，用以纪念Go语言从最初的设计idea起到目前的十年发展。笔者读完后，也是深有感触，因此在这里粗略翻译一下全文，希望能有更多的程序员加入到Gopher行列中来。 译文全文如下： ...</description></item><item><title>解决Kubernetes 1.7.3 kube-apiserver频繁异常重启的问题</title><link>https://tonybai.com/2017/08/09/fix-kube-apiserver-restart-exceptionally-in-k8s-1-7-3/</link><pubDate>Wed, 09 Aug 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/08/09/fix-kube-apiserver-restart-exceptionally-in-k8s-1-7-3/</guid><description>近期将之前的一个用kube-up.sh安装的Kubernetes 1.3.7的环境更换为最新发布的用kubeadm安装的Kubernetes 1.7.3版本。新版本的安装过程和之前的采用kubeadm安装的k8s 1.5.x、1.6.x版本类似，这里不赘述了。但在安装Dashboard后，发现了一些问题，这里记录一下解决的过程。 一、第一个问题 ------- 我们先来做一下回顾。在《解决Kube...</description></item><item><title>解决Kubernetes 1.6.4 Dashboard无法访问的问题</title><link>https://tonybai.com/2017/07/20/fix-cannot-access-dashboard-in-k8s-1-6-4/</link><pubDate>Thu, 20 Jul 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/07/20/fix-cannot-access-dashboard-in-k8s-1-6-4/</guid><description>前一段时间将之前采用kubeadm安装的Kubernetes 1.5.1环境升级到了1.6.4版本，升级过程较为顺利。由于该k8s cluster是一个测试环境，当时并没有过于关注，就忙别的事情了。最近项目组打算在这个环境下做一些事情，而当我们重新“捡起”这个环境时，发现Kubernetes Dashboard无法访问了。 Kubernetes的dashboard可以有很多种访问方式，比如：可以通...</description></item><item><title>基于Harbor和CephFS搭建高可用Private Registry</title><link>https://tonybai.com/2017/06/09/setup-a-high-availability-private-registry-based-on-harbor-and-cephfs/</link><pubDate>Fri, 09 Jun 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/06/09/setup-a-high-availability-private-registry-based-on-harbor-and-cephfs/</guid><description>我们有给客户搭建私有容器仓库的需求。开源的私有容器registry可供选择的不多，除了docker官方的distribution之外，比较知名的是VMware China出品的Harbor，我们选择了harbor。 harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。harbor以docker-compose的规范形式组织各...</description></item><item><title>专访稿：兴趣才是第一生产力</title><link>https://tonybai.com/2017/05/18/an-interview-from-operation-partner-in-2017/</link><pubDate>Thu, 18 May 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/05/18/an-interview-from-operation-partner-in-2017/</guid><description>本文是公司“运营拍档”公众号的专访文稿，这里转载一下^0^。原文链接在这里&amp;amp;version=11020201&amp;amp;pass_ticket=ia4cVivHQScpxBfw10RPkT%2BWZVT1yfyMiTZHrOO15OBtpNZhx0V6DxxEFUySX3io)。 十年生死两茫茫，白天忙，晚上忙，写程序，到天亮。千行代码，Bug何处藏。纵使上线又怎样，朝令改，夕断肠…… * * * **白 ...</description></item><item><title>一步步打造基于Kubeadm的高可用Kubernetes集群-第二部分</title><link>https://tonybai.com/2017/05/15/setup-a-ha-kubernetes-cluster-based-on-kubeadm-part2/</link><pubDate>Mon, 15 May 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/05/15/setup-a-ha-kubernetes-cluster-based-on-kubeadm-part2/</guid><description>续接上文。 五、第三步：启动emei、wudang上的apiserver ------------------------------ 跨三个node的etcd cluster已经建成并完成了数据同步，下面进行ha cluster改造的重要一步：启动wudang、emei上的apiserver 1、启动emei、wudang上的apiserver 以shaolin node上的/etc/kuber...</description></item><item><title>一步步打造基于Kubeadm的高可用Kubernetes集群-第一部分</title><link>https://tonybai.com/2017/05/15/setup-a-ha-kubernetes-cluster-based-on-kubeadm-part1/</link><pubDate>Mon, 15 May 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/05/15/setup-a-ha-kubernetes-cluster-based-on-kubeadm-part1/</guid><description>Kubernetes集群的核心是其master node，但目前默认情况下master node只有一个，一旦master node出现问题，Kubernetes集群将陷入“瘫痪”，对集群的管理、Pod的调度等均将无法实施，即便此时某些用户的Pod依旧可以正常运行。这显然不能符合我们对于运行于生产环境下的Kubernetes集群的要求，我们需要一个高可用的Kubernetes集群。 不过，目前Ku...</description></item><item><title>Kubernetes集群node主机名修改导致的异常</title><link>https://tonybai.com/2017/05/09/exception-caused-by-kubernetes-node-hostname-change/</link><pubDate>Tue, 09 May 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/05/09/exception-caused-by-kubernetes-node-hostname-change/</guid><description>除了在生产环境使用的Kubernetes 1.3.7集群之外，我这里还有一套1.5.1的Kubernetes测试环境，这个测试环境一来用于验证各种技术方案，二来也是为了跟踪Kubernetes的最新进展。本篇要记录的一个异常就是发生在该测试Kubernetes集群中的。 一、缘起 前两天我在Kubernetes测试环境搭建一套Ceph，为了便于ceph-deploy的安装，我通过hostnamec...</description></item><item><title>Kubernetes集群跨节点挂载CephFS</title><link>https://tonybai.com/2017/05/08/mount-cephfs-acrossing-nodes-in-kubernetes-cluster/</link><pubDate>Mon, 08 May 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/05/08/mount-cephfs-acrossing-nodes-in-kubernetes-cluster/</guid><description>在Kubernetes集群中运行有状态服务或应用总是不那么容易的。比如，之前我在项目中使用了CephRBD，虽然遇到过几次问题，但总体算是运行良好。但最近发现CephRBD无法满足跨节点挂载的需求，我只好另辟蹊径。由于CephFS和CephRBD师出同门，它自然成为了这次我首要考察的目标。这里将跨节点挂载CephFS的考察过程记录一下，一是备忘，二则也可以为其他有相似需求的朋友提供些资料。 一、C...</description></item><item><title>Go coding in go way</title><link>https://tonybai.com/2017/04/20/go-coding-in-go-way/</link><pubDate>Thu, 20 Apr 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/04/20/go-coding-in-go-way/</guid><description>本篇文章是我在2017年第三届GopherChina大会上所作talk：”Go coding in go way)“的改编和展开版，全文如下。 一、序 --- 今天我要分享的题目是**“Go coding in go way”**，中文含义就是用**“Go语言编程思维去写Go代码”**。看到这个题目大家不禁要问：究竟什么是Go语言编程思维呢？关于什么是Go语言变成思维其实并没有官方说法。这里要和大...</description></item><item><title>使用Fluentd和ElasticSearch Stack实现Kubernetes的集群Logging</title><link>https://tonybai.com/2017/03/03/implement-kubernetes-cluster-level-logging-with-fluentd-and-elasticsearch-stack/</link><pubDate>Fri, 03 Mar 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/03/03/implement-kubernetes-cluster-level-logging-with-fluentd-and-elasticsearch-stack/</guid><description>在本篇文章中，我们继续来说Kubernetes。 经过一段时间的探索，我们先后完成了Kubernetes集群搭建，DNS、Dashboard、Heapster等插件安装，集群安全配置，搭建作为Persistent Volume的CephRBD，以及服务更新等探索和实现工作。现在Kubernetes集群层面的Logging需求逐渐浮上水面了。 随着一些小应用在我们的Kubernetes集群上的部署上...</description></item><item><title>在Kubernetes Pod中使用Service Account访问API Server</title><link>https://tonybai.com/2017/03/03/access-api-server-from-a-pod-through-serviceaccount/</link><pubDate>Fri, 03 Mar 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/03/03/access-api-server-from-a-pod-through-serviceaccount/</guid><description>Kubernetes API Server是整个Kubernetes集群的核心，我们不仅有从集群外部访问API Server的需求，有时，我们还需要从Pod的内部访问API Server。 然而，在生产环境中，Kubernetes API Server都是“设防”的。在《Kubernetes集群的安全配置》一文中，我提到过：Kubernetes通过client cert、static token、...</description></item><item><title>Kubernetes集群Pod使用Host的本地时区设置</title><link>https://tonybai.com/2017/02/20/use-host-timezone-in-kubernetes-pods/</link><pubDate>Mon, 20 Feb 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/02/20/use-host-timezone-in-kubernetes-pods/</guid><description>Kubernetes集群搭建起来后，一直跑得很稳定。之前的关注点更多集中在安装、配置、组件调试方面，一些细枝末节被忽略了。Pod中时区的设置就是其中之一。今天腾出功夫打算解决一下这个问题。 一、问题现象 在我的Kubernetes 1.3.7集群的Master Node上，我们执行： date Mon Feb 20 11:49:20 CST 2017 之后，在该Node上随意找到一个Pod中的Co...</description></item><item><title>Kubernetes Pod无法挂载ceph RBD存储卷的临时解决方法</title><link>https://tonybai.com/2017/02/17/temp-fix-for-pod-unable-mount-cephrbd-volume/</link><pubDate>Fri, 17 Feb 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/02/17/temp-fix-for-pod-unable-mount-cephrbd-volume/</guid><description>所有涉及到存储的地方都是极易出现“坑”的地方，Kubernetes也不例外。 一、问题起因 问题始于昨天升级一个stateful service的操作。该service下的Pod挂载了使用ceph RBD提供的一个Persistent Volume。该Pod是用普通deployment部署的，并没有使用处于alpha状态的PetSet。改动仅仅是image的版本发生了变化。我执行的操作如下： ku...</description></item><item><title>Kubernetes集群中Service的滚动更新</title><link>https://tonybai.com/2017/02/09/rolling-update-for-services-in-kubernetes-cluster/</link><pubDate>Thu, 09 Feb 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/02/09/rolling-update-for-services-in-kubernetes-cluster/</guid><description>在移动互联网时代，消费者的消费行为已经“全天候化”，为此，商家的业务系统也要保持7×24小时不间断地提供服务以满足消费者的需求。很难想像如今还会有以“中断业务”为前提的服务系统更新升级。如果微信官方发布公告说：每周六晚23:00~次日凌晨2:00进行例行系统升级，不能提供服务，作为用户的你会怎么想、怎么做呢？因此，各个平台在最初设计时就要考虑到服务的更新升级问题，部署在Kubernetes集群中的...</description></item><item><title>以Kubeadm方式安装的Kubernetes集群的探索</title><link>https://tonybai.com/2017/01/24/explore-kubernetes-cluster-installed-by-kubeadm/</link><pubDate>Tue, 24 Jan 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/01/24/explore-kubernetes-cluster-installed-by-kubeadm/</guid><description>当前手上有两个Kubernetes cluster，一个是采用kube-up.sh安装的k8s 1.3.7版本，另外一个则是采用kubeadm安装的k8s 1.5.1版本。由于1.3.7版本安装在前，并且目前它也是承载了我们PaaS平台的环境，因此对于这个版本的Kubernetes安装环境、配置操作、日志查看、集群操作等相对较为熟悉。而Kubeadm安装的1.5.1版本K8s集群在组件部署、配置、...</description></item><item><title>Kubernetes Dashboard集成Heapster</title><link>https://tonybai.com/2017/01/20/integrate-heapster-for-kubernetes-dashboard/</link><pubDate>Fri, 20 Jan 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/01/20/integrate-heapster-for-kubernetes-dashboard/</guid><description>默认安装后的Kubernetes dashboard如下图所示，是无法图形化展现集群度量指标信息的： 图形化展示度量指标的实现需要集成k8s的另外一个Addons组件：Heapster。 Heapster原生支持K8s(v1.0.6及以后版本)和CoreOS，并且支持多种存储后端，比如：InfluxDB、ElasticSearch、Kafka等，这个风格和k8s的确很像：功能先不管完善与否，先让自...</description></item><item><title>Kubernetes集群Dashboard插件安装</title><link>https://tonybai.com/2017/01/19/install-dashboard-addon-for-k8s/</link><pubDate>Thu, 19 Jan 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/01/19/install-dashboard-addon-for-k8s/</guid><description>第一次利用kube-up.sh脚本方式安装Kubernetes 1.3.7集群时，我就已经顺利地将kubernetes dashboard addon安装ok了。至今在这个环境下运行十分稳定。但是毕竟是一个试验环境，有些配置是无法满足生产环境要求的，比如：安全问题。今天有时间对Dashboard的配置进行一些调整，顺带将之前Dashboard插件的安装和配置过程也记录下来，供大家参考。 一、Das...</description></item><item><title>理解Kubernetes网络之Flannel网络</title><link>https://tonybai.com/2017/01/17/understanding-flannel-network-for-kubernetes/</link><pubDate>Tue, 17 Jan 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/01/17/understanding-flannel-network-for-kubernetes/</guid><description>第一次采用kube-up.sh脚本方式安装的Kubernetes cluster目前运行良好，master node上的组件状态也始终是“没毛病”： kubectl get cs NAME STATUS MESSAGE ERROR controller-manager Healthy ok scheduler Healthy ok etcd-0 Healthy {&amp;#34;health&amp;#34;: &amp;#34;true&amp;#34;}...</description></item><item><title>理解Docker容器网络之Linux Network Namespace</title><link>https://tonybai.com/2017/01/11/understanding-linux-network-namespace-for-docker-network/</link><pubDate>Wed, 11 Jan 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/01/11/understanding-linux-network-namespace-for-docker-network/</guid><description>由于2016年年中调换工作的原因，对容器网络的研究中断过一段时间。随着当前项目对Kubernetes应用的深入，我感觉之前对于容器网络的粗浅理解已经不够了，容器网络成了摆在前面的“一道坎”。继续深入理解K8s网络、容器网络已经势在必行。而这篇文章就算是一个重新开始，也是对之前浅表理解的一个补充。 我还是先从Docker容器网络入手，虽然Docker与Kubernetes采用了不同的网络模型：K8s...</description></item><item><title>2016小结</title><link>https://tonybai.com/2017/01/03/2016-summary/</link><pubDate>Tue, 03 Jan 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/01/03/2016-summary/</guid><description>每到年终岁尾，历史上受到过中国文化影响的国家和地区都有评选当年年度汉字的传统，比如：2016年马来西亚年度汉字为“贪”，鬼子国日本年度汉字为“金”，中国台湾地区年度汉字为“苦”，而大陆地区的年度汉字据说是“规”。其实每个人心中都有一个自己的年度汉字，2016年，我个人的年度汉字为“变”。 一、离职 其实，这两年我求变的步伐一直没有停歇，只是今年迈出了实质性的一步。2016年4月末，就是在参加完Go...</description></item><item><title>使用Kubeadm安装Kubernetes</title><link>https://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm/</link><pubDate>Fri, 30 Dec 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm/</guid><description>在《当Docker遇到systemd》一文中，我提到过这两天儿一直在做的一个task：使用kubeadm在Ubuntu 16.04上安装部署Kubernetes的最新发布版本-k8s 1.5.1。 年中，Docker宣布在Docker engine中集成swarmkit工具包，这一announcement在轻量级容器界引发轩然大波。毕竟开发者是懒惰的^0^，有了docker swarmkit，驱动...</description></item><item><title>使用Kubeadm安装Kubernetes-Part2</title><link>https://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm-2/</link><pubDate>Fri, 30 Dec 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm-2/</guid><description>此文为《使用Kubeadm安装Kubernetes》的第二部分。文章第一部分在这里可以看到。 五、weave network for pod 经过上面那么多次尝试，结果是令人扫兴的。Weave network似乎是最后一颗救命稻草了。有了前面的铺垫，这里就不详细列出各种命令的输出细节了。Weave network也有专门的官方文档用于指导如何与kubernetes集群集成，我们主要也是参考它。 1...</description></item><item><title>当Docker遇到systemd</title><link>https://tonybai.com/2016/12/27/when-docker-meets-systemd/</link><pubDate>Tue, 27 Dec 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/12/27/when-docker-meets-systemd/</guid><description>近期在做Kubernetes集群的升级的相关试验，即从原先的K8s 1.3.7版本升级到最新的K8s 1.5.1版本。k8s自1.4版本开始引入kubeadm，试图简化K8s的安装和使用门槛，提升开发者体验。但kubeadm仅支持16.04及以上的Ubuntu版本，于是我们在升级K8s集群前会遇到另外一个问题：Ubuntu 16.04已经由Upstart初始化系统换成了systemd初始化系统，U...</description></item><item><title>Kubernetes集群的安全配置</title><link>https://tonybai.com/2016/11/25/the-security-settings-for-kubernetes-cluster/</link><pubDate>Fri, 25 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/25/the-security-settings-for-kubernetes-cluster/</guid><description>使用kubernetes/cluster/kube-up.sh脚本在装有Ubuntu操作系统的bare metal上搭建的Kubernetes集群并不安全，甚至可以说是“完全不设防的”，这是因为Kubernetes集群的核心组件：kube-apiserver启用了insecure-port。insecure-port背后的api server默认完全信任访问该端口的流量，内部无任何安全机制。并且监...</description></item><item><title>为Kubernetes集群中服务部署Nginx入口服务</title><link>https://tonybai.com/2016/11/22/deploy-nginx-service-for-the-services-in-kubernetes-cluster/</link><pubDate>Tue, 22 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/22/deploy-nginx-service-for-the-services-in-kubernetes-cluster/</guid><description>这段日子，一直在搞与Kubernetes有关的东东：像什么Kubernetes集群搭建、DNS插件安装和配置、集成Ceph RBD持久卷、Private Registry镜像库访问等，这些都缘于正在开发的一个类PaaS小平台的需要：“平台虽小，五脏俱全”。整个平台由Kubernetes集群承载，对于K8s集群内部的Service来说，目前还欠缺一个服务入口。之前的《Kubernetes集群中的Ng...</description></item><item><title>Kuberize Ceph RBD API服务</title><link>https://tonybai.com/2016/11/21/kuberize-ceph-rbd-api-service/</link><pubDate>Mon, 21 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/21/kuberize-ceph-rbd-api-service/</guid><description>在《使用Ceph RBD为Kubernetes集群提供存储卷》一文中，我们提到：借助Kubernetes和Ceph的集成，Kubernetes可以使用Ceph RBD为集群内的Pod提供Persistent Volume。但这一过程中，RBD所使用的image的创建、删除还需要手动管理，于是我们又基于go-ceph实现了对RBD image的程序化管理，我们的最终目标是要这种对RBD image的...</description></item><item><title>Kubernetes集群中的Nginx配置热更新方案</title><link>https://tonybai.com/2016/11/17/nginx-config-hot-reloading-approach-for-kubernetes-cluster/</link><pubDate>Thu, 17 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/17/nginx-config-hot-reloading-approach-for-kubernetes-cluster/</guid><description>Nginx已经是互联网IT业界一个无敌的存在，作为反向代理、负载均衡、Web服务器等多种角色的扮演者，Nginx在全球各个互联网公司落地、开花和结果，Ngnix已经成为了支撑全球互联网应用的一个不可获取的组成部分。 在我们的平台中，Nginx同样被拿来作为服务接入的最前端的反向代理，并且我们的Nginx也是作为一个Service跑在我们的Kubernetes集群中的。Ngnix背后的服务众多，服务...</description></item><item><title>Kubernetes从Private Registry中拉取容器镜像的方法</title><link>https://tonybai.com/2016/11/16/how-to-pull-images-from-private-registry-on-kubernetes-cluster/</link><pubDate>Wed, 16 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/16/how-to-pull-images-from-private-registry-on-kubernetes-cluster/</guid><description>话接上文，在《使用go-ceph管理Ceph RBD映像》一文中我们提到了，我们需要自建一个ceph rbd api service用于给我的产品控制台提供RESTful API服务接口。这个服务我也是打算放在kubernetes集群中作为一个Service运行的。这两天完成了这个服务开发，并编写完Service的Dockerfile，将镜像build, tag并push到了我们在阿里云的私有镜像...</description></item><item><title>使用go-ceph管理Ceph RBD映像</title><link>https://tonybai.com/2016/11/09/operate-ceph-rbd-images-with-go-ceph/</link><pubDate>Wed, 09 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/09/operate-ceph-rbd-images-with-go-ceph/</guid><description>在《使用Ceph RBD为Kubernetes集群提供存储卷》一文中，我们了解到，在Kubernetes和ceph的集成过程中，有一个步骤是需要手动操作的，那就是创建ceph osd pool下面的rbd image。我们需要想办法去除这一手动步骤。关于方案，我们首先想到的就是是否可以调用Ceph提供的REST API来管理rbd的pool和image？ Ceph提供了两套REST API方案：c...</description></item><item><title>使用Ceph RBD为Kubernetes集群提供存储卷</title><link>https://tonybai.com/2016/11/07/integrate-kubernetes-with-ceph-rbd/</link><pubDate>Mon, 07 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/07/integrate-kubernetes-with-ceph-rbd/</guid><description>一旦走上使用Kubernetes的道路，你就会发现这条路并不好走，充满荆棘。即便你使用Kubernetes建立起的集群规模不大，也是需要“五脏俱全”的，否则你根本无法真正将kubernetes用起来，或者说一个半拉子Kubernetes集群很可能无法满足你要支撑的业务需求。在目前我正在从事的一个产品就是这样，光有K8s还不够，考虑到”有状态服务”的需求，我们还需要给Kubernetes配一个后端存...</description></item><item><title>Kubernetes集群DNS插件安装</title><link>https://tonybai.com/2016/10/23/install-dns-addon-for-k8s/</link><pubDate>Sun, 23 Oct 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/10/23/install-dns-addon-for-k8s/</guid><description>在上一篇关于Kubernetes集群安装的文章中，我们建立一个最小可用的k8s集群，不过k8s与1.12版本后的内置了集群管理的Docker不同，k8s是一组松耦合的组件组合而成对外提供服务的。除了核心组件，其他组件是以Add-on形式提供的，比如集群内kube-DNS、K8s Dashboard等。kube-dns是k8s的重要插件，用于完成集群内部service的注册和发现。随着k8s安装和管...</description></item><item><title>一篇文章带你了解Kubernetes安装</title><link>https://tonybai.com/2016/10/18/learn-how-to-install-kubernetes-on-ubuntu/</link><pubDate>Tue, 18 Oct 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/10/18/learn-how-to-install-kubernetes-on-ubuntu/</guid><description>由于之前在阿里云上部署的Docker 1.12.2的Swarm集群没能正常展示出其所宣称的Routing mesh和VIP等功能，为了满足项目需要，我们只能转向另外一种容器集群管理和服务编排工具Kubernetes。 &amp;gt; _注：之前Docker1.12集群的Routing mesh和VIP功能失效的问题，经过在github上与Docker开发人员的沟通，目前已经将问题原因缩小在阿里云的网络上面，目...</description></item><item><title>Docker 1.12 swarm模式下遇到的各种问题</title><link>https://tonybai.com/2016/10/11/some-problems-under-swarm-mode-in-docker-1-12/</link><pubDate>Tue, 11 Oct 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/10/11/some-problems-under-swarm-mode-in-docker-1-12/</guid><description>前段时间，由于工作上的原因，与Docker的联系发生了几个月的中断^\_^，从10月份开始，工作中又与Docker建立了广泛密切的联系。不过这次，Docker却给我泼了一盆冷水:(。事情的经过请允许多慢慢道来。 经过几年的开发，Docker已经成为轻量级容器领域不二的事实标准，应用范围以及社区都在快速发展和壮大。今年的年中，Docker发布了其里程碑的版本Docker 1.12，该版本最大的变动就...</description></item><item><title>GopherChina2016后记</title><link>https://tonybai.com/2016/04/18/my-experience-of-gopherchina2016/</link><pubDate>Mon, 18 Apr 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/04/18/my-experience-of-gopherchina2016/</guid><description>4月17日晚22:51，伴随着D7次动车缓缓驶入沈阳北站，拖着疲惫的身体和些许兴奋的我，结束了两天的GopherChina 2016之旅。 一、GopherChina大会 GopherChina大会是中国大陆地区Golang语言推广第一品牌。2015年在上海成功了举办了第一届大会；2016年，大会发起人astaxie为充分照顾帝都（及周边）Gophers们的情绪^\_^，将GopherChina ...</description></item><item><title>Rancher使用入门</title><link>https://tonybai.com/2016/04/14/an-introduction-about-rancher/</link><pubDate>Thu, 14 Apr 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/04/14/an-introduction-about-rancher/</guid><description>上个月末，Rancher Labs在其官方博客上宣布了 Rancher 1.0正式版本发布。 这是继Apache Mesos、 Google Kubernetes以及Docker 原生 Swarm 之后，又一个可用于Production环境中的容器管理和服务编排工具，而Rancher恰似这个领域的最后一张拼图（请原谅我的孤陋寡闻，如 果有其他 厂商在做这方面产品，请在评论中留言告诉我）。从Ranc...</description></item><item><title>理解Docker跨多主机容器网络</title><link>https://tonybai.com/2016/02/15/understanding-docker-multi-host-networking/</link><pubDate>Mon, 15 Feb 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/02/15/understanding-docker-multi-host-networking/</guid><description>在Docker 1.9 出世前，跨多主机的容器通信方案大致有如下三种： 1、端口映射 将宿主机A的端口P映射到容器C的网络空间监听的端口P’上，仅提供四层及以上应用和服务使用。这样其他主机上的容器通过访问宿主机A的端口P实 现与容器C的通信。显然这个方案的应用场景很有局限。 2、将物理网卡桥接到虚拟网桥，使得容器与宿主机配置在同一网段下 在各个宿主机上都建立一个新虚拟网桥设备br0，将各自物理网卡...</description></item><item><title>理解Docker容器端口映射</title><link>https://tonybai.com/2016/01/18/understanding-binding-docker-container-ports-to-host/</link><pubDate>Mon, 18 Jan 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/01/18/understanding-binding-docker-container-ports-to-host/</guid><description>在”理解Docker单机容器网络“一文中，还有一个Docker容器网络的功能尚未提及，那就是Docker容器的端口映射。即将容器的服务端口P’ 绑定到宿主机的端口P上，最终达到一种效果：外部程序通过宿主机的P端口访问，就像直接访问Docker容器网络内部容器提供的服务一样。 Docker针对端口映射前后有两种方案，一种是1.7版本之前docker-proxy+iptables DNAT的方式；另一...</description></item><item><title>理解Docker单机容器网络</title><link>https://tonybai.com/2016/01/15/understanding-container-networking-on-single-host/</link><pubDate>Fri, 15 Jan 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/01/15/understanding-container-networking-on-single-host/</guid><description>Docker容器是近两年最 火的IT技术之一，用“火山爆发式“来形容Docker的成 长也不为过。Docker在产品服务的devops 运维、云 计算(CaaS)、大数据以及企业内部应用等领域正在被越来越多的接受和广泛应用。Docker技术的本质在于提升计算密度和提升部署效率，高屋 建瓴的讲，它的出现符合人类社会对绿色发展的追求，降低资源消耗，提升资源的单位利用率。不过经历了两年多的发展，Dock...</description></item><item><title>使用core-vagrant方式安装CoreOS</title><link>https://tonybai.com/2015/07/20/install-coreos-by-coreos-vagrant/</link><pubDate>Mon, 20 Jul 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/07/20/install-coreos-by-coreos-vagrant/</guid><description>CoreOS是一种专门为运行类docker容器而生的linux发行版。与其他通用linux发行版（ubuntu、debian、redhat)相 比，它具有体型最小，消耗最小，支持滚动更新等特点。除此之外CoreOS内置的分布式系统服务组件也给开发者和运维者组建分布式集群、部署分布式服务应 用带来了极大便利。 CoreOS与知名容器Docker脚前脚后诞生，到目前为止已经较为成熟，国外主流云平台提供...</description></item></channel></rss>