Demon.Lee 2023-03-21 17:39

kubernetes 自定义域名解析的两种方案:

1、官方推荐 HostAliases,哪个 pod 需要就配哪个,比较灵活,但无法做到全局。

2、使用 CoreDNS 的 hosts plugins,可以实现全局配置,如果不生效,可以参考这篇文章。附图是配置 coredns 和 nodelocaldns 两个 ConfigMap 的示例,自定义域名为 gateway.centercar.izkml.com

Demon.Lee 2023-03-17 10:45

replace string in file/fies via sed command:

single file: sed -i 's/old-str/new-str/g' xxx.yml
multi-files: sed -i 's/old-str/new-str/g' *.yml

但在 macOS 13.3 M1 Chip 上,上面的脚本运行报错

sed: 1: “xxx …”: command c expects \ followed by text

需要将其改造为:sed -i '' -e 's/old-str/new-str/g' xxx.yml

Demon.Lee 2023-03-17 09:02

一个人单枪匹马把一个团队搞出来的 EJB 给干掉,还是一个音乐学博士 🙃

Demon.Lee 2023-03-16 14:34

Git rename a local branch and sync to remote

1. Rename your local branch:
If you are on the branch you want to rename: git branch -m new-name
If you are on a different branch: git branch -m old-name new-name

2. Delete the old-name remote branch and push the new-name local branch:
git push origin :old-name new-name

3. Reset the upstream branch for the new-name local branch:
Switch to the branch and then: git push origin -u new-name

example: arch-kubernetes --> arch-k8s-dev

➜  ne-xxx git:(arch-kubernetes) > git branch -m arch-k8s-dev
➜  ne-xxx git:(arch-k8s-dev) >
➜  ne-xxx git:(arch-k8s-dev) > git push origin :arch-kubernetes arch-k8s-dev 
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: 
remote: To create a merge request for arch-k8s-dev, visit:
remote:   https://gitlab.xxx.com/ne-xxxx/-/merge_requests/new?merge_request%5Bsource_branch%5D=arch-k8s-dev
remote: 
To gitlab.xxx.com:ne-xxx.git
 - [deleted]           arch-kubernetes
 * [new branch]        arch-k8s-dev -> arch-k8s-dev
➜  ne-xxx git:(arch-k8s-dev) >
➜  ne-xxx git:(arch-k8s-dev) > git push origin -u arch-k8s-dev               
branch 'arch-k8s-dev' set up to track 'origin/arch-k8s-dev'.
Everything up-to-date
➜  ne-xxx git:(arch-k8s-dev) > 
Demon.Lee 2023-03-12 09:57

芯片设计与制造的过程非常复杂,但我们可以简单地将其理解为三个部分:前端设计 (Design)、后端制造 (Manufacturing) 、封裝 (Package) 测试。

Demon.Lee 2023-03-08 09:58

kubernetes 声明式设计背后的思想是什么?

声明式的描述,其实就是自描述,你不需要做转换就能理解。比如,很多枚举值用 0, 1, 2 来表示,这就没有自描述的能力,但你用 red,green,blue 来描述,那就不一样了,你看一眼就明白啥意思。

声明式带来自动化,背后靠的是控制器模式的强大能力,就像你把空调温度调到 28 ℃ 一样,然后就没你什么事了,不论当前温度是多少,空调控制器都会帮你达到你想要的状态。

把复杂留给自己,把简单留给客户,这就是 Infrastructure as Code

Demon.Lee 2023-03-07 09:10

Flomo 的禅定模式,喜欢。

Demon.Lee 2023-03-07 09:02

1、要有生活,爱生活,爱生活的细节,而不只有空洞的目标;
2、可以管理好自己的情绪,具备自愈的能力,而不是迁怒于身边人;
3、眼里有自己,也有别人,有别人的感受和体会,可以推己及人。

“段誉在松鹤楼和乔峰斗酒,拼了几十碗,怕乔峰喝太多烈酒伤身,就哈哈一笑把钱包扔在桌上,说大哥你再喝我可没钱了。”

摘自「六神磊磊读金庸 」《段誉比慕容复到底好在哪里

Demon.Lee 2023-03-05 22:00

记录一下:开车时不能带着情绪,容易出事,要警惕。

今天下午出门,在一个路口右转时,突然发现我的左边冒出一辆大卡车,差点撞上去。

事后分析,可能是因为自己有点着急,带着情绪,完全没看到后面直行的大卡车。还有一种可能是,我右转时,后方直行还没有车,等我右转后,对方车子快速开过来,此时我的弧度有点大,直接进入了中间车道,导致差点相撞。

开车要谨慎,谨慎,再谨慎,尤其是车上还坐着家人。

Demon.Lee 2023-03-03 16:55

本地调试 Spring Cloud Kubernetes 会出现如下错误:
did not find any endpoints in ribbon in namespace [null] for name [xxx-service] and portname [null]

可以在 bootstrap.yml 中指定 namespace:

ribbon:
  KubernetesNamespace: new-book

按理说,有了 Kubernetes Service 这样的负载均衡能力(就是 DNS 负载均衡),其实是可以不需要 Ribbon 这样的客户端负载均衡了。可能是由于我们用的版本较低(Spring Cloud Kubernetes 1.0.0),所以有这个问题。Spring Cloud Kubernetes 从 1.1.2 开始已经移除了对 Ribbon 的适配支持,也暂时没有对其代替品 Spring Cloud LoadBalancer 提供适配。

附:spring-cloud-kubernetes 服务发现