<?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>Service on Tony Bai</title><link>https://tonybai.com/tags/service/</link><description>Recent content in Service on Tony Bai</description><generator>Hugo</generator><language>zh-cn</language><copyright>2004-2026 Tony Bai. 版权所有.</copyright><lastBuildDate>Mon, 17 Nov 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://tonybai.com/tags/service/index.xml" rel="self" type="application/rss+xml"/><item><title>你的 Go 测试，还停留在“演员对台词”吗？</title><link>https://tonybai.com/2025/11/17/go-testing-journey/</link><pubDate>Mon, 17 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/17/go-testing-journey/</guid><description>本文永久链接 – https://tonybai.com/2025/11/17/go-testing-journey 大家好，我是Tony Bai。 我想请大家想象一个场景： 周五下午五点，你刚刚修复了一个看似无关紧要的 bug，怀着对周末的憧憬，合并了你的代码。CI/CD 流水线一片绿灯，部署顺利完成。 突然，运维在工作群里 @ 了你：“紧急！新版本上线后，核心的用户注册功能好像挂了！” 你心里...</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>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/04/21/go-project-design-antipatterns/</link><pubDate>Mon, 21 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/21/go-project-design-antipatterns/</guid><description>Go项目设计的“七宗罪”？警惕那些流行的“反模式” - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 *...</description></item><item><title>如何像gitlab-runner那样将Go应用安装为系统服务</title><link>https://tonybai.com/2022/09/12/how-to-install-a-go-app-as-a-system-service-like-gitlab-runner/</link><pubDate>Mon, 12 Sep 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/09/12/how-to-install-a-go-app-as-a-system-service-like-gitlab-runner/</guid><description>本文永久链接 – https://tonybai.com/2022/09/12/how-to-install-a-go-app-as-a-system-service-like-gitlab-runner 在《让reviewdog支持gitlab-push-commit，守住代码质量下限》一文中，gitlab-runner(一个Go语言开发的应用)通过自身提供的install命令将自己安装为了一个...</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>gRPC客户端的那些事儿</title><link>https://tonybai.com/2021/09/17/those-things-about-grpc-client/</link><pubDate>Fri, 17 Sep 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/09/17/those-things-about-grpc-client/</guid><description>本文永久链接 – https://tonybai.com/2021/09/17/those-things-about-grpc-client 在云原生与微服务主导架构模式的时代，内部服务间交互所采用的通信协议选型无非就是两类：HTTP API(RESTful API)和RPC。在如今的硬件配置与网络条件下，现代RPC实现的性能一般都是好于HTTP API的。我们以json over http与gR...</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>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>使用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>使用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>官宣：慕课网课程“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>在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>一步步打造基于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集群中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>理解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遇到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集群中服务部署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>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>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></channel></rss>