<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>D day</title><description>Thinking</description><link>https://here2say.com/</link><pubDate>Wed, 11 Mar 2026 07:50:18 GMT</pubDate><copyright>© 2023</copyright><generator>Moonglade v12.8.0-preview</generator><item><title>在M2芯片的macOS下通过虚拟机安装windows并运行K8s</title><link>https://here2say.com/post/2024/4/3/add-windows-vm-to-k8s-nodes</link><description>在macOS中添加Windows节点用于开发调试
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">be570fdb-3810-48e7-a93c-38b97a183f65</guid><pubDate>Wed, 03 Apr 2024 07:20:51 GMT</pubDate></item><item><title>minio 多版本实现解读</title><link>https://here2say.com/post/2023/6/17/minio-multi-version</link><description>aws s3有多版本的接口，minio支持此特性，为了学习minio EC模式如何实现的多版本，本文稍做解读整理。
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">33e99eeb-ced0-4033-8982-93b3fd852061</guid><pubDate>Sat, 17 Jun 2023 09:02:02 GMT</pubDate></item><item><title>数据不完整公告</title><link>https://here2say.com/post/2023/4/9/announcement-of-data-loss</link><description>本站由于某个时间段内未续费，停机一段时间，且数据未备份，导致部分数据缺失，如图片，特此告知
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">ebf6740c-71ff-420f-a375-d1c5a0226efa</guid><pubDate>Sun, 09 Apr 2023 09:16:50 GMT</pubDate></item><item><title>Linux下利用strace调试docker的小技能</title><link>https://here2say.com/post/2020/11/29/debug-docker-with-linux-strace</link><description>strace是Linux上内置的一个工具，能非常方便用来诊断问题以及调试程序等，因为它可记录和展示一条命令究竟是如何进行系统调用（system calls） 以及其中的信号处理情况。
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">02706df3-0b85-4998-95b6-4194a55678b2</guid><pubDate>Sun, 29 Nov 2020 01:21:12 GMT</pubDate></item><item><title>如何优雅地结束Pod或容器进程</title><link>https://here2say.com/post/2020/7/25/how-to-terminate-pod-gracefully</link><description>一般来说，我们使用的Linux系统或者Windows又或者macOS在关机的时候都不会直接拔电源，而是点关机按钮或者使用命令行
输入诸如shutdown now此类的命令优雅的关机。那是因为通常不应该直接强行退出应用程序，而是在退出之前通过信号机制给应用进程发送指定的信号.
应用收到信号后进行状态保存，资源回收等操作最后才安全地退出
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">2730d11a-0f4a-4314-97e3-98b0c5eb59a5</guid><pubDate>Sat, 25 Jul 2020 17:19:57 GMT</pubDate></item><item><title>rpm打包📦从入门🚪到放弃💨</title><link>https://here2say.com/post/2020/7/11/learn-rpm-packaging</link><description>构建rpm包需要几要素
构建工具（rpmbuild/rpm)
构建环境
规格描述文件xxx.spec
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">5ff93cb3-ec8c-4720-9b36-f7bb654ae0a6</guid><pubDate>Sat, 11 Jul 2020 01:18:05 GMT</pubDate></item><item><title>kubernetes扩展基础之controller</title><link>https://here2say.com/post/2020/2/11/extend-kubernetes-with-controller</link><description>controller是kubernetes中非常重要的角色，控制器负责协调不同的状态，相当于大脑的角色。在使用kubernetes的过程
或者在扩展kubernetes做其他开发中基本上都会用到。因此在这里记录下。
很不幸，本站因未及时续费关站一段时间，导致数据丢失，部分图片为找到。。。
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">384f73b8-800f-4ece-8ca2-f9d4673c021a</guid><pubDate>Tue, 11 Feb 2020 01:15:27 GMT</pubDate></item><item><title>kubernetes扩容存储卷预研.md</title><link>https://here2say.com/post/2019/9/3/investigation-of-volume-expansion</link><description>随着越来越来的容器开始跑有状态服务，因此容器存储的需求日渐增加 因此在这里预研容器扩容存储的场景 卷扩容功能现在还是beta状态，但是也可以在在csi driver中实现具体的接口进行实验性使用。
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">d0a063ac-365f-4eb1-8137-c70d977c0aae</guid><pubDate>Tue, 03 Sep 2019 00:17:02 GMT</pubDate></item><item><title>Kubernetes存储原理源码剖析-Attach/Detach Controller</title><link>https://here2say.com/post/2019/7/19/deep-dive-in-k8s-adcontroller</link><description>在上文中，已经通过例子和大量图解解释k8s编排系统中存储资源的调度，数据流等细节。
但是上次的文章主要都是从原理上进行解释，包括in tree volume plugin，external provisioner以及最新的CSI。
他们原理上是相通的，这也是本次要深入挖掘的代码环节。
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">0ec81abb-fe77-49a4-a75d-818abcbe282f</guid><pubDate>Fri, 19 Jul 2019 16:14:39 GMT</pubDate></item><item><title>图解Raft算法和分布式系统网络分区问题</title><link>https://here2say.com/post/2019/5/14/understand-raft-by-gif</link><description>Raft是分布式系统中常用的基于Paxos的Consensus算法。相比于Paxos，Raft设计采用了较少的状态，并且是一种更简单、更易于理解的算法
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">496768fa-5bf4-4964-9164-d9d66a2b4a6c</guid><pubDate>Tue, 14 May 2019 00:13:10 GMT</pubDate></item><item><title>深入了解kubernetes存储细节以及流程解析</title><link>https://here2say.com/post/2019/5/12/deep-dive-of-kubernetes-storage</link><description>这是Kubernetes存储系列的第二篇文章。上一篇花了一些篇幅解释了Kubernetes中的一些存储概念，最终带出了关键的一点-----动态供应。在编排系统中，存储资源也应该像Pod一样，可以动态规划的，这种方式又称之为动态供应（dynamic provision）。为了实现这个目标，k8s社区提出了好几种方案，今天在此进行探索一番。
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">a72e3b20-2960-4e31-9205-228b38eea6aa</guid><pubDate>Sun, 12 May 2019 00:10:46 GMT</pubDate></item><item><title>Kubernetes中存储持久化方案--全览基础篇</title><link>https://here2say.com/post/2019/5/6/storage-for-kubernetes-overview</link><description>很早就想写这篇文章，毕竟已经基于Kubernetes开发有一段时间了，需要做一个阶段性总结。
按照大纲，将会有三篇，
其中第一篇为基础篇章，主要讲解kubernetes中的存储概念以及基本使用
第二遍为中级篇章，只要结合源码讲解kubernetes存储细节以及流程
第三篇为深入csi，手把手教学任意存储厂商编写驱动教程
本篇作为基础会把kubernetes涉及的存储概念交待清楚并配以实战
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">865b9b0d-ba45-40c3-9a9b-9d65ecbc1d2f</guid><pubDate>Mon, 06 May 2019 00:09:10 GMT</pubDate></item><item><title>使用golang理解Linux namespace（七）-UTS</title><link>https://here2say.com/post/2019/5/5/go-and-namespace-part7-uts</link><description>上文我们使用了Network这个namespace写了个demo演示了网络空间，把veth一端塞进容器里头，并解决了容器网络问题。目前为止，这个go写的简单容器已经演示了好几个Linux的命名空间的使用。今天的主题是使用UTS namespace。
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">e2ecc321-64dc-4d49-9f32-cc263166b004</guid><pubDate>Sun, 05 May 2019 00:06:33 GMT</pubDate></item><item><title>使用golang理解Linux namespace（六）-Network</title><link>https://here2say.com/post/2019/5/4/go-and-namespace-part6-network</link><description>上一回合使用了Mount命名空间，并下载了一个很小的linux文件系统alpline作为镜像，然后整体运行起来之后就是一个简单的linux容器。但是实际操作起来会发现，这个容器的网络并没有设置好。因此这里要介绍下和网络相关的命名空间Network
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">4c275dff-3543-4049-a809-f8dd2fd680b0</guid><pubDate>Sat, 04 May 2019 00:05:05 GMT</pubDate></item><item><title>使用golang理解Linux namespace（五）-Mount</title><link>https://here2say.com/post/2019/4/28/go-and-namespace-part5-mount</link><description>众所周知，在Linux上使用容器有个天大的好处，就是可以把不同的系统打包运行，虽然你的宿主机可能就是CentOS，但是如果使用了容器技术，你可以同时运行alpline，Debian，Ubuntu等其他的你喜欢的发行版，关键是这些容器共享宿主的资源，因此，每个容器是非常轻量级的，不同虚拟机，这是如何做到的
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">15f39ac7-bbdd-46fe-8405-e0b407619dc9</guid><pubDate>Sun, 28 Apr 2019 00:02:57 GMT</pubDate></item><item><title>使用golang理解Linux namespace（四）-clone前的初始化</title><link>https://here2say.com/post/2019/4/27/go-and-namespace-part4-pre-clone</link><description>上回通过uid和gid的映射解决了容器内用户权限问题，使之更像一个容器进程。这次要更进一步，通过理解docker的reexec包解决一种容器中常遇到的一种场景。
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">63b49113-0d0a-477a-a177-262991208254</guid><pubDate>Sat, 27 Apr 2019 00:01:10 GMT</pubDate></item><item><title>使用golang理解Linux namespace（三）- User</title><link>https://here2say.com/post/2019/4/25/go-and-namespace-part3-user</link><description>上一篇讲到，我们同时使用了不同命名空间，包括
Mount, UTS, IPC, PID, Network还有User命名空间。然而，其实还遗留下很多东西，比如缺少初始化，配置等操作。这次会详细讲解其中的问题。
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">820b4ff1-c834-49cb-a70d-12e1018f84f1</guid><pubDate>Thu, 25 Apr 2019 23:59:39 GMT</pubDate></item><item><title>使用golang理解Linux namespace（二）- clone()</title><link>https://here2say.com/post/2019/4/24/go-and-namespace-part2-clone</link><description>unshare只是个简单和namespace有关的的例子，如果要深入了解容器,这就有点不够用了。
因为我们可能还需要更近一步的控制。因此我们会从程序语言层面来探索namespace，而不只是命令，本系列采用golang
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">697bb7ab-d555-43aa-a0ad-ac09ac456760</guid><pubDate>Wed, 24 Apr 2019 23:57:38 GMT</pubDate></item><item><title>使用golang理解Linux namespace（一）- 基础</title><link>https://here2say.com/post/2019/4/22/go-and-namespace-part1-basic</link><description>在展开学习命名空间发现，大多数教程都基于C语言讲解，其实也很合理，毕竟Linux的历史由来就这样，但是为了结合技术栈更方便理解，这里采用golang来进行讲解
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">6761e85d-ae16-4504-8569-1d1178c6459c</guid><pubDate>Mon, 22 Apr 2019 23:54:00 GMT</pubDate></item><item><title>为Kubernetes贡献的正确姿势</title><link>https://here2say.com/post/2019/3/26/how-to-make-contribution-to-kubernetes</link><description>Kubernetes是一个大型的项目，其代码全部开源，在github上都可以访问，理论上所有人都可以参与其中。不少人也是有过这样的疑问🤔️我是Kubernetes新手，但也想做贡献。那么该如何入手
 …</description><author>luohaihao@gmail.com</author><category>Default</category><guid isPermaLink="false">4dd0c92d-436d-496b-b3d7-8cd9742f52c6</guid><pubDate>Tue, 26 Mar 2019 23:51:16 GMT</pubDate></item></channel></rss>