Pie*_*tet 6 port web-services kubernetes
我使用私人在线服务器通过 kubernetes 设置 jenkins 环境。
我有以下服务文件:
apiVersion: v1
kind: Service
metadata:
name: jenkins
namespace: jenkins
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
selector:
app: jenkins
Run Code Online (Sandbox Code Playgroud)
它有效,这意味着我可以从我的服务器获取 jenkins pod。但是我无法从本地计算机网络浏览器访问我的服务。
为此,我必须输入以下命令:
kubectl port-forward -n jenkins service/jenkins 8080:8080 --address=<localServerIp>
Run Code Online (Sandbox Code Playgroud)
我读过端口转发仅用于调试(kubectl 端口转发和 NodePort 服务之间的区别)。但我找不到如何将我的服务配置为在互联网上可见。我想要相当于持久端口转发的端口转发规则。
小智 3
您提供的配置应该没问题,但您必须在节点上配置额外的防火墙规则,才能从NodeIP:NodePort外部连接到您的 Jenkins 服务。
配置裸机集群时需要注意一些事项,因为您必须配置自己的负载均衡器才能为您的服务提供外部可用的 IP 地址。云环境使用自己的负载平衡器,使这变得更容易。您可以配置自己的负载均衡器,然后创建一种LoadBalancer服务并以这种方式连接到您的应用程序。在此查看不同类型的服务
您可以尝试的另一件事(尽管不推荐)是使您的kubectl port-forward命令持久化。您可以将kubelet 参数 streaming-connection-idle-timeout设置为 0 - 这永远不会关闭您的转发。如果您不想更改任何配置,可以运行:
while true; do kubectl port-forward -n jenkins service/jenkins 8080:8080 --address=<localServerIp>; done
您可能会发现一些有用的链接:类似案例,在 kubernetes 中公开应用程序。
| 归档时间: |
|
| 查看次数: |
9116 次 |
| 最近记录: |