K8s 下的应用管理 — 了解 Helmfile

在上一篇文章中,为大家介绍了 Helm 的初步使用。然而这仍然不能满足我司的工作流,主要问题有: Helm 不提供 apply 命令;因此在 CI/CD 场景中必须考虑到判断是 install 还是 upgrade。 不方便控制安装的 chart 版本;例如指定版本范围、锁定某一版本等。 Values 必须是纯文本;不支持模板渲染、不方便区分环境。 因此我们需要 Helm Releases as Code。我听说过的产品有 Helmsman 和 Helmfile 两款。目前我们团队已经使用后者一段时间,并且有团队成员贡献过部分代码。

March 24, 2020 · Wi1dcard

K8s 下的应用管理 — 了解 Helm

Helm 是一款针对 Kubernetes 的「包管理器」,虽说称它为包管理器,其实与应用开发过程中使用的包管理器略有不同,后者管理的是应用开发过程中的依赖,Helm 则管理着 Kubernetes 中应用部署时各项资源的依赖。 如果你对 Kubernetes 有一定了解,相信你已经对 Deployment、Service、Ingress 等资源有了一定认识,大多数 Web 应用在部署到 K8s 集群上时需要大量不同类型的资源。你可以将这些资源声明的 YAML 文件放在同一个文件夹下管理,但是随着数量的增加,如何复用这些 YAML、如何灵活又不繁琐地调整配置以适应不同环境、如何将这些 YAML 作为一个整体管理,成了一个不小的问题。

March 24, 2020 · Wi1dcard

搭建异构 CPU 组成的边缘计算 Kubernetes 集群

平时除了维护公司和私人在公有云的 Kubernetes clusters 之外,个人网络环境下还有些需要运行在本地的 workload;比如用于监控本地路由设备(~作~ XD)的 Prometheus exporters 和一些新奇玩意儿。为了能够运行这些应用,我在家组建了一套「边缘计算集群」,来看看是怎么做的吧。

February 27, 2020 · Wi1dcard

跨项目 GitLab CI 配置复用与管理

为了能够使代码在不同项目复用,我司抽象、编写了许多私有 libraries。它们的源代码被统一存放在 GitLab,由 CI 确保代码风格一致,并执行单元测试和静态检查等。由于仓库数量众多,如何有效地组织和管理 CI 配置成了问题。经过长时间的探索和优化,我整理了一些经验,希望对你有所帮助。

February 26, 2020 · Wi1dcard

22 岁的杂谈

忽然发现农历新年已经过去了一个月。这一个月我干了啥?!?

February 24, 2020 · Wi1dcard

Connect to Sangfor SSL VPNs Without the Terrible Client

The VPN provider of Nanjing University has recently been changed to Sangfor, which is one of the biggest company who provides the corporate SDN, VPN and other enterprise network solutions in China. Although, the SSL VPN client from Sangfor is extremely hard to use - Changing the default DNS server without any notification, hijacking all UDP packet that dport is 53, even removing all the default route generated from the CIDR of interfaces which prevents the client connect to any LAN devices except **.**.**.1. These issues have been described as “features” of their products from a training manual that I found in Baidu Wenku.

January 10, 2020 · Wi1dcard

一篇又长又乏味的年终总结和展望

转眼间到了 2019 年末,还记得去年也写过一篇类似的 博客;计划今年的「年终总结」蛮久了,只是觉得时间还早便一直没有动手,直到今天才恍然 —— 已经是 2019 年最后一天了。

December 31, 2019 · Wi1dcard

Increase Node.js V8 Memory Limit

After a few days working on Salesforce integration, I finnally finished a simple CLI edtion of DataLoader using prune TypeScript. Within lots of CSV rows loaded into memory, the node engine always crashs around 130k of records. In order to get this job done as quick as possible, I have to increase the max memory of Node.js.

November 28, 2019 · Wi1dcard

List All IP Addresses and the Number of Connections to a Port

It’s been a while maintaining the proxy services for my work friends who are in Beijing office. These days I tried to collect some basic metrics like online IP addresses and its connections. And I found a very simple way to do it with only netstat and several text process tools.

November 13, 2019 · Wi1dcard

Find Your Public IP Address via DNS Protocol

OpenDNS has a “un-official” (I didn’t find any docs at least) API for returning your public IP, by a normal DNS query.

November 7, 2019 · Wi1dcard