2017-08-26 73 views
1

我想在本地Kubernetes群集(无云)上部署Jenkins。 我将在Jenkins上面创建2个服务。 端口8080的一种类型NodePort服务(映射到随机端口,我可以在群集外部访问它,也可以使用ClusterIP:8080在群集内部访问它)。一切都好。Kubernetes:无法telnet到我的群集内的ClusterIP服务

我的第二个服务是我的詹金斯奴隶可以连接。 我选择了ClusterIP(默认)类型我的服务:

我读了3种类型的服务:

  • clusterIP:

自曝集群上的服务 - 内部知识产权。选择此值 使服务只能从群集内访问。

  • NodePort:没有必要为50000,露出外面集群
  • 负载均衡:我不是在云

在这里工作是我.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端口。 我试图tel净服务詹金斯发现ClusterIP:port和我得到了连接拒绝。我可以telnet到jenkins-ui服务的ClusterIP:port。我做错了什么,或者有一部分我不明白?

+0

假设你已经启用了DNS附加功能,从集群内,'curl jenkins-discovery.default.svc.cluster.local'会给你什么? –

+0

我知道你说“没有云”,但也许你会通过尝试https://github.com/GoogleCloudPlatform/continuous-deployment-on-kubernetes找出发生了什么问题?或者这个非云漫步:https://blog.kublr.com/using-jenkins-and-kubernetes-for-continuous-integration-and-delivery-4e4341aff013 – burnettk

+0

你可以检查'kubectl get ep jenkins-ui - n ci'?这可能是你的选择器有问题吗?或者你可能是詹金斯大师的'readinessProbe'? –

回答

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 
+0

欢迎您:) –

相关问题