三周学会 Go,昨天我的代码并入了 k9s
来源:dev.to — 2026-08-01
📋 概述
作者从零 Go 基础起步,短短三周就向最受欢迎的 Kubernetes 终端界面项目 k9s 提交了被合并的 PR。真正棘手的是一个只有两行改动、却花了他四十八小时才修对的 bug:k8s 1.31 引入 PortForwardWebsockets 特性后,端口转发改走 WebSocket 而非 SPDY,而 WebSocket 路径只要求 get 权限而非 create——导致只有 get 权限的用户在 k9s 里被错误地判定无法转发端口,尽管 kubectl 一切正常。这是一次关于两行修复的复盘,也是一段新手如何在实战中理解 Go、HTTP 升级与授权机制的真实记录。
🔑 核心要点
- k8s 1.31的 PortForwardWebsockets 让转发从 SPDY 改走 WebSocket,权限语义从 create 变成 get
- 两行改动却花了四十八小时:权限检查与新的 WebSocket 路径不匹配
- 只有 get权限的用户在 k9s 里被错误灰掉转发选项,kubectl 却一切正常
- 不是教程,而是一次新手在三天里理解 Go、HTTP 升级与 Kubernetes 授权的复盘
💡 金句
这不是一个教程,这是一次花了我四十八小时才修好的两行修复的尸检报告。
👍 0
👎 0
← 返回 dev.to 首页