如果要集群外访问,只能创建 NodePort 的 svc 才行吗? port-forward 使用的场景是啥?
1
css3 OP |
2
Judoon 2022-11-08 17:12:06 +08:00
你的链接里面已经说的很明白了,kubectl port-forward 是给你 debug 用的,和 svc 里面的暴露方式是两回事。
而且这个 forward 映射出来的端口,只能在执行 kubectl 的机器上被访问,这就取决于你这台机器上的安全规则 |
3
yasi 2022-11-08 17:22:13 +08:00
port-forward 就是给集群外访问用的啊,你还可以 bind 0.0.0.0 任意地方都可以访问。
|
4
MrSheng 2022-11-08 17:27:06 +08:00
# Listen on port 8888 on all addresses, forwarding to 5000 in the pod
kubectl port-forward --address 0.0.0.0 pod/mypod 8888:5000 |
5
ospider 2022-11-08 17:36:33 +08:00
2L 说得对,这个是 debug 用的,不是给你生产系统上暴露端口用的。
|
7
css3 OP 尝试转发了 elasticsearc ,集群外已经能请求是通的,但是服务不可用
kubectl port-forward -n debug svc/elasticsearch 32345:9200 --address 0.0.0.0 # 集群外浏览器访问时,命令行报以下错: Forwarding from 0.0.0.0:32345 -> 9200 Handling connection for 32345 E1109 20:49:19.449246 2732386 portforward.go:400] an error occurred forwarding 32345 -> 9200: error forwarding port 9200 to pod 363e34776981b5357de40b6139fd9ee2c978a05eebd1a5f7932b7bf3868930f2, uid : exit status 1: 2022/11/09 20:49:19 socat[541516] E connect(5, AF=2 127.0.0.1:9200, 16): Connection refused 但我用:kubect expose svc -n debug elasticsearch --name elasticsearch-svc --type=NodePort 后,集群外浏览器能正常访问 es 的版本页面 请问下大家这是咋回事啊, 是这么用的吗 @Judoon @yasi @MrSheng @ospider |