-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.json
1 lines (1 loc) · 8.58 KB
/
index.json
1
[{"categories":[],"content":"升级 K8s 集群版本后,发现 netstat 看不到 nodePort Service 监听的端口了,随时排查一番,发现是某个版本中取消了 kube-proxy 监听 nodePort 的功能。 ","date":"2023-09-11","objectID":"/5-k8s-nodeport-service/:0:0","tags":[],"title":"k8s NodePort 端口监听问题","uri":"/5-k8s-nodeport-service/"},{"categories":[],"content":"背景 根据原来学习的内容, nodePort 类型的 Service ,会在本机监听对应的端口,可以使用 netstat -antlp 查询端口监听的状态。 但升级集群版本后,用 ss 看不到监听的端口了,以为是哪里出了问题, 查了半天资料,终于搞清楚了,是 2022 年 3 月的某个 commit ,删除了 kube-proxy 监听 nodePort 的功能 所以之后发布的版本,用 netstat 就看不到 nodePort 端口了 ","date":"2023-09-11","objectID":"/5-k8s-nodeport-service/:1:0","tags":[],"title":"k8s NodePort 端口监听问题","uri":"/5-k8s-nodeport-service/"},{"categories":[],"content":"为什么删除 根据 PR 中的描述 最早实现让 kube-proxy 监听 nodePort 端口,是想阻止用户在节点上监听 nodePort ,以免冲突,以及会带来调试问题。 但需要注意的是,即便 kube-proxy 监听端口失败,也只是记录日志并继续创建转发规则,实际并不影响流量。 然而,由 kube-proxy 打开端口,带来的问题比价值更大。 问题可以简要描述为以下几点: 性能问题,因为要先由 proxy 开端口,再配置转发规则,如果规则过多还没配置好,那你实际连的就是 proxy 的端口,而不是转发到实际的业务端口(以内还没配置好呢呗),当集群的规模越来越大时,这个问题就更加明显了 可能会有很多 CLOSE_WAIT 状态的 TCP 连接没有及时释放,会消耗主机的资源 ","date":"2023-09-11","objectID":"/5-k8s-nodeport-service/:2:0","tags":[],"title":"k8s NodePort 端口监听问题","uri":"/5-k8s-nodeport-service/"},{"categories":[],"content":"删除后有什么影响 kube-proxy 将不再在节点上保持 Service NodePort 端口处于打开状态。所以用 netstat or ss 将看不到监听的 nodePort 端口,可以通过 ipvsadm -Ln 来查看转发规则。 但仍建议你不要在 kube-proxy 使用的节点端口范围内(默认30000-32768),监听任何端口。 因为 ipvs 在内核态就根据转发规则把流量转发给后端 Pod 了,你在 node 上再监听的端口实际收不到数据。 同时,如果你的应用使用了 HostNetwork,要小心不要使用 nodePort 范围的端口,比如默认的 30000-32767,不然如果 nodePort 随机分配到你的 HostNetwork 端口,流量就直接被 ipvs 转发了。 ","date":"2023-09-11","objectID":"/5-k8s-nodeport-service/:3:0","tags":[],"title":"k8s NodePort 端口监听问题","uri":"/5-k8s-nodeport-service/"},{"categories":[],"content":"从哪个版本开始修改的 根据 commit 提交的时间(2022年3月),和我的测试,能确认是2022年5月份之后的版本,已全部删除 kube-proxy 监听 NodePort 的代码。 测试已删除代码的版本: 1.21.13 及之后小版本 1.22.10 及之后小版本 1.23.7 及之后小版本 1.24.1 及之后小版本 1.25.0 及之后小版本 以及后续所有新版本 ","date":"2023-09-11","objectID":"/5-k8s-nodeport-service/:4:0","tags":[],"title":"k8s NodePort 端口监听问题","uri":"/5-k8s-nodeport-service/"},{"categories":[],"content":"参考 https://github.com/kubernetes/kubernetes/pull/108496 ","date":"2023-09-11","objectID":"/5-k8s-nodeport-service/:5:0","tags":[],"title":"k8s NodePort 端口监听问题","uri":"/5-k8s-nodeport-service/"},{"categories":[],"content":"ESXi 虚拟化环境的 HTTPS 证书到期,前端更换失败,通过 SSH 登录宿主,替换证书文件的方式更新 HTTPS 证书。 ","date":"2022-11-18","objectID":"/4-change-esxi-cert/:0:0","tags":[],"title":"ESXi 更换证书","uri":"/4-change-esxi-cert/"},{"categories":[],"content":"前端更新失败 从前端导入证书失败,固使用 SSH 到宿主上替换证书文件。 ","date":"2022-11-18","objectID":"/4-change-esxi-cert/:1:0","tags":[],"title":"ESXi 更换证书","uri":"/4-change-esxi-cert/"},{"categories":[],"content":"通过 SSH 登录宿主更新 ssh 使用 root 用户登录后 进入 /etc/vmware/ssl 目录,rui.crt、rui.key,是默认的证书文件。 开启 SSH 登录 备份原证书 cp rui.crt rui.crt.bak cp rui.key rui.key.bak vi 编辑,%d 清空,复制申请好的证书 .pem 到 rui.crt, .key 到 rui.key 重启服务 /etc/init.d/hostd restart # 重启 hostd 服务 /etc/init.d/vpxa restart # 重启 vpxa 服务 /etc/init.d/vpxa start # 启动 vpxa 服务 /etc/init.d/hostd start # 启动 hostd 服务 ","date":"2022-11-18","objectID":"/4-change-esxi-cert/:2:0","tags":[],"title":"ESXi 更换证书","uri":"/4-change-esxi-cert/"},{"categories":[],"content":"完成 登录检查证书 关闭 SSH 为保证安全,关闭 SSH 登录。 ","date":"2022-11-18","objectID":"/4-change-esxi-cert/:3:0","tags":[],"title":"ESXi 更换证书","uri":"/4-change-esxi-cert/"},{"categories":["Linux"],"content":"Linux 终端代理及 Git Http \u0026 SSH 代理最佳实践","date":"2022-11-02","objectID":"/01-linux-proxy/","tags":["Linux"],"title":"Linux 及 Git 代理配置","uri":"/01-linux-proxy/"},{"categories":["Linux"],"content":"Linux 终端代理及 Git Http \u0026 SSH 代理最佳实践 ","date":"2022-11-02","objectID":"/01-linux-proxy/:0:0","tags":["Linux"],"title":"Linux 及 Git 代理配置","uri":"/01-linux-proxy/"},{"categories":["Linux"],"content":"Linux 终端代理配置 将如下配置添加至 ~/.bash_profile 后, source ~/.bash_profile 生效. http_proxy=http://127.0.0.1:7890 https_proxy=http://127.0.0.1:7890 no_proxy=localhost,127.0.0.1,localaddress,.localdomain.com,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,100.64.0.0/10,17.0.0.0/8,.local,169.254.0.0/16,224.0.0.0/4,240.0.0.0/4 # 如果代理失效的话直接运行 poff 即可断开 proxy alias poff='unset http_proxy;unset https_proxy' # 快捷方式打开 alias pon='export http_proxy=$proxyurl; export https_proxy=$proxyurl' ","date":"2022-11-02","objectID":"/01-linux-proxy/:1:0","tags":["Linux"],"title":"Linux 及 Git 代理配置","uri":"/01-linux-proxy/"},{"categories":["Linux"],"content":"Git 代理配置 ","date":"2022-11-02","objectID":"/01-linux-proxy/:2:0","tags":["Linux"],"title":"Linux 及 Git 代理配置","uri":"/01-linux-proxy/"},{"categories":["Linux"],"content":"Git HTTP 代理 适用于仅 pull 场景 临时 git clone -c http.proxy=\"http://127.0.0.1:1080\" https://github.com/TIGERB/easy-php.git 永久 # 设置 git 的代理相关设置 git config –global http.proxy http://127.0.0.1:1080 git config –global https.proxy http://127.0.0.1:1080 # 或者使用 sock5 git config --global http.proxy socks5://127.0.0.1:1080 git config --global https.proxy socks5://127.0.0.1:1080 # 关闭SSL认证 git config --global http.sslVerify false # 取消 git 的代理相关设置 git config –global –unset http.proxy # 取消 git 的代理相关设置 git config –global –unset https.proxy # 查看 Git 全局配置 git config --global -l # 取消代理设置 git config --global --unset http.proxy ","date":"2022-11-02","objectID":"/01-linux-proxy/:2:1","tags":["Linux"],"title":"Linux 及 Git 代理配置","uri":"/01-linux-proxy/"},{"categories":["Linux"],"content":"Git SSH 代理 适用于 pull/post 场景 # vim ~/.ssh/config Host github.com bitbucket.org ProxyCommand nc -x 127.0.0.1:1080 %h %p ","date":"2022-11-02","objectID":"/01-linux-proxy/:3:0","tags":["Linux"],"title":"Linux 及 Git 代理配置","uri":"/01-linux-proxy/"},{"categories":["Linux"],"content":"通过 https 端口使用 SSH 由于部分代理限制了 22 端口,无法直接使用 ssh 模式 问题详见 git无法使用代理连接ssh 可将如下配置添加至 ~/.ssh/config 中 Host github.com Hostname ssh.github.com Port 443 User git PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa ","date":"2022-11-02","objectID":"/01-linux-proxy/:3:1","tags":["Linux"],"title":"Linux 及 Git 代理配置","uri":"/01-linux-proxy/"},{"categories":["Linux"],"content":"参考 https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port ","date":"2022-11-02","objectID":"/01-linux-proxy/:4:0","tags":["Linux"],"title":"Linux 及 Git 代理配置","uri":"/01-linux-proxy/"},{"categories":[],"content":"个人简介 暂时没想好,先空着吧 ","date":"2022-11-01","objectID":"/about/:1:0","tags":[],"title":"Index","uri":"/about/"},{"categories":[],"content":"Hello Hello World ~ ","date":"2022-11-01","objectID":"/hello-world/:1:0","tags":[],"title":"Hello World","uri":"/hello-world/"}]