我想在本地Kubernetes集群(没有云)上部署Jenkins。
我将在Jenkins之上创建2个服务。
一个端口8080
的NodePort类型的服务(映射到随机端口,我可以在集群外部访问它。我也可以使用ClusterIP:8080
)在集群内访问它。一切都很好。
我的第二项服务是我的詹金斯奴隶可以连接。 我选择ClusterIP(默认)作为我的服务类型:
我读到了有关3种类型的服务:
在群集内部IP上公开服务。选择此值 使服务只能从群集中访问。
这是我的.yml
来创建服务:
kind: Service
apiVersion: v1
metadata:
name: jenkins-ui
namespace: ci
spec:
type: NodePort
selector:
app: master
ports:
- protocol: TCP
port: 8080
targetPort: 8080
name: master
---
kind: Service
apiVersion: v1
metadata:
name: jenkins-discovery
namespace: ci
spec:
#type: ClusterIP
selector:
app: jenkins
ports:
- protocol: TCP
port: 50000
targetPort: 50000
name: slaves
问题是我的奴隶无法连接到端口50000。
我试图telnet服务jenkins-discovery的ClusterIP:port
,我拒绝了连接。我可以telnet到jenkins-ui服务的ClusterIP:port
。我做错了什么或有一部分我不明白?
答案 0 :(得分:0)
它已经解决了。错误是选择器,这是我不清楚的一部分。我正在使用不同的节点选择器,这似乎导致了这个问题。这很有效:
kind: Service
apiVersion: v1
metadata:
name: jenkins-ui
namespace: ci
spec:
type: NodePort
selector:
app: master
ports:
- protocol: TCP
port: 8080
targetPort: 8080
name: master
---
kind: Service
apiVersion: v1
metadata:
name: jenkins-discovery
namespace: ci
spec:
#type: ClusterIP
selector:
app: master
ports:
- protocol: TCP
port: 50000
targetPort: 50000
name: slaves