Web Services Kubernetes:“持久的”港口远期

knpiaxh1  于 2022-11-24  发布在  Kubernetes
关注(0)|答案(2)|浏览(316)

我用一个私人的在线服务器通过kubernetes设置一个jenkins环境。
我有以下服务文件:

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

它能工作,这意味着我可以从我的服务器wget jenkins pod。但是我不能从我的本地计算机网络浏览器访问我的服务。
为此,我必须键入以下命令:

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

我读到port-forward是只调试的(kubectl port-forwarding和NodePort服务之间的区别)。但是我找不到如何配置我的服务使其在互联网上可见。我想要一个持久的port-forward的port-forward规则的等价物。

x33g5p2x

x33g5p2x1#

您提供的配置应该没有问题,但您必须在节点上配置其他防火墙规则,以便能够从外部连接到NodeIP:NodePort上的Jenkins服务。
配置裸机群集时存在某些considerations问题,因为你必须配置自己的负载平衡器,以便为你的服务提供外部可用的IP地址。云环境使用自己的负载平衡器,从而简化了此操作。你可以配置自己的负载平衡器,然后创建LoadBalancer类型的服务,并以这种方式连接到你的应用。在此处检查不同类型的服务
另一个你可以尝试的方法是使你的kubectl port-forward命令持久化。你可以将kubelet parameterstreaming-connection-idle-timeout设置为0 -这将永远不会关闭转发。如果你不想更改任何配置,你可以运行:
while true; do kubectl port-forward -n jenkins service/jenkins 8080:8080 --address=<localServerIp>; done
以下链接可能对您有用:这是一个很好的例子。

t0ybt7op

t0ybt7op2#

您可能需要测试Telepresence.io,它允许您建立到远程Kubernetes集群的连接。这就像您的本地笔记本电脑位于Kubernetes集群中一样。您可以使用集群DNS,甚至重新路由连接到您的笔记本电脑。

相关问题