gpt4 book ai didi

web-services - Kubernetes: "persistent"端口转发

转载 作者:行者123 更新时间:2023-12-05 03:31:56 28 4
gpt4 key购买 nike

我使用私有(private)在线服务器通过 kubernetes 设置 jenkins 环境。

我有以下服务文件:

apiVersion: v1
kind: Service
metadata:
name: jenkins
namespace: jenkins
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
selector:
app: jenkins

它有效,这意味着我可以从我的服务器获取 jenkins pod。但是,我无法从我的本地计算机网络浏览器访问我的服务。

为此,我必须键入以下命令:

kubectl port-forward -n jenkins service/jenkins 8080:8080 --address=<localServerIp>

我读到 port-forward 仅供调试 ( Difference between kubectl port-forwarding and NodePort service )。但是我找不到如何将我的服务配置为在 Internet 上可见。我想要等效于持久端口转发的端口转发规则。

最佳答案

您提供的配置应该没问题,但您必须在节点上配置额外的防火墙规则才能连接到 NodeIP:NodePort 上的 Jenkins 服务。外部。

有一定的considerations在配置裸机集群时,因为您必须配置自己的负载均衡器才能为您的服务提供外部可用的 IP 地址。云环境使用自己的负载均衡器使这更容易。您可以配置自己的负载均衡器,然后创建一个 LoadBalancer服务类型并以这种方式连接到您的应用程序。检查different types of Services here

虽然不推荐,但您可以尝试的另一件事是制作您的 kubectl port-forward命令持久化。你可以设置 kubelet parameter streaming-connection-idle-timeout到 0 - 这将永远不会关闭您的转发。如果您不想更改任何配置,您可以运行:

while true; do kubectl port-forward -n jenkins service/jenkins 8080:8080 --address=<localServerIp>; done

一些您可能会觉得有用的链接:similar case , exposing apps in kubernetes .

关于web-services - Kubernetes: "persistent"端口转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70557167/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com