cyjme 最近的时间轴更新
this is a test
2017-03-20 10:50:56 +08:00
cyjme

cyjme

V2EX 第 136404 号会员,加入于 2015-09-01 20:33:34 +08:00
cyjme 最近回复了
2022-12-09 18:07:43 +08:00
回复了 cyjme 创建的主题 Kubernetes k3s 中的负载均衡如何能够直接把域名解析到当前节点的 pod?
@GopherDaily

今天折腾了很多,这里重新梳理下,我前面的关注点太多了,下面只关注流量到达 traefik pod

前面的 svclb-pod 是由 k3s 自带的一个 Load Balancer(Klipper LB)创建的 daemon 。


**当前的环境:**

有一个类型为 LoadBalancer 的 traefik service, load balance 是通过 KipperLB 实现的。Traefik
Service 创建了 Daemon Sets: "svclb-traefik",运行在每一个节点上,监听 80/443 端口。

将 traefik deployment scale 到每个节点上都有一个,并且开启了 access log 。

设置 traefik service 的 spec.externalTrafficPolicy = Local 。



**问题:**

理论上来说,应该只有被访问的节点上的 traefik pod 可以收到请求,但是目前是其他节点也可以收到。






今天刚开始调试的时候看日志是大部分请求都到了同一个节点的,但是会有少量请求到其他节点,以为是配置生效了,怀疑可能是网络的问题(用了 zerotier ,k3s server --flannel-iface={zerotier-Iface}),worker node 在国外,网络质量不够高之类的,但是调试一番之后,其实还是配置没生效,只是我之前只请求一个 url ,似乎有某种机制让请求只到达一个节点?只要换了 url 其他节点也会收到大量请求。externalTrafficPolicy = Local 生效的话,应该是其他节点完全收不到请求才对。


然后又查了一些其他资料,也有人遇到这个问题,但没有明确的答案。可能会和 k3s 的 Klipper LB 有关系,更细节的调试还要涉及到 cni, flannel 还有 k8s 的各种命令。但是我现在这方面知识缺失很多,排查问题过程很艰难。我周末把 k8s 的文档和网络相关的文档先看一遍,然后再重新排查这个问题,可能还要重新搞一个虚拟机环境,尝试不同的 lb 和 cni 配置。后续有结果了我再更新到这里。
2022-12-08 18:33:16 +08:00
回复了 cyjme 创建的主题 Kubernetes k3s 中的负载均衡如何能够直接把域名解析到当前节点的 pod?
@GopherDaily 感谢。

根据文档看起来好像是和 externalTrafficPolicy 有一些关系,我做了尝试之后,发现 externalTrafficPolicy 可以产生如下如下影响:

cluster: nodeA, nodeB, nodeC

blog-servcie ( type: NodePort, port:30025), blog-pod 只运行在 nodeA ,

将 externalTrafficPolicy 设为 Local 后,只有 http://nodeA:30025 可以访问,nodeB:30025 无法访问。externalTrafficPolicy 默认的 Cluster 所有节点都可以访问这个端口。


** 但是这个并不能解决当下的问题: **

以 http://blog.domain 为例,ip 指向 nodeA, blog-pod 运行在 nodeA, nodeB, nodeC 三个节点上,blog-service 的 externalTrafficPolicy 设为 Local ,当访问 blog.domain 的时候,nodeB 和 nodeC 依然会分流收到请求。

期望结果是 只有 nodeA 上的 blog-pod 能收到请求。

我查看了 nodeA 的 svclb-pod 中的 iptables ,它只是把所有流量都转发到了 traefik 的 service ,而 traefik pod 实际只运行在 nodeB ,所以流量必然要先经过 nodeB ?

有没有什么其他方法呢?
2022-11-27 14:53:04 +08:00
回复了 spr1ngs 创建的主题 程序员 求推荐点 txt 风格的博客 博客主题
2022-10-31 10:39:36 +08:00
回复了 libasten 创建的主题 问与答 帮忙推荐几款 68 键的机械键盘?
niz plum
2022-06-22 11:51:45 +08:00
回复了 Konys 创建的主题 Vim VIM 如何入门
我的 vim 使用路径

1.idea/vscode 插件,找个 vim cheat sheet 打印下来。学会插入、换行、保存、替换 之类的常见操作。
2.更复杂的操作,比如数千、录制宏之类的,基本脱离鼠标
3.spacevim / lunarvim 这种集成好各种插件的 "IDE",替代 vscode ,偶尔翻 《 vim 使用指南》或者搜索寻找提高效率的技巧
4.添加修改插件,对 lunarvim 进行修改。
5.从零折腾自己的 vim 环境。

1 和 2 我用了两年时间,主要是懒,没有继续深入的动力,所以进度就慢。
现在在第 4 步加上一些定制,基本上也有第 5 步的能力,但是暂时不想继续折腾了。

现在回头看,我强烈建议缩短学习过程,1 和 2 的步骤用 1~2 周时间去刻意练习。快速进入 步骤 3 ,这个时候就可以完全抛弃 vscode 或者 idea 了。

重点:强烈建议去刻意练习 vim ,鼠标丢一边,拔掉方向键。更早学会,就能更早的提高生产力。
强烈支持开设此岗位,技术写作确实是蛮重要的一环。
但是国内该岗位相当少,招聘软件上几乎没有相关职位,简历搜索中几乎也没有。


PS. 最近在学习过程中,翻译了 Google 的 《 Technical Writing Courses 》, 感兴趣的伙伴可以看看:

原文《 Technical Writing Courses 》:
https://developers.google.com/tech-writing

译文『技术写作教程』:
https://www.letsgo.tech/tech-writing
2022-06-13 15:03:02 +08:00
回复了 plutome 创建的主题 程序员 求助:关于用 Go 实现 socks5 代理中转服务,并对接代理 IP 池
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2062 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 00:37 · PVG 08:37 · LAX 16:37 · JFK 19:37
Developed with CodeLauncher
♥ Do have faith in what you're doing.