首页 文章

Kubernetes:无法telnet到我的群集内的ClusterIP服务

提问于
浏览
1

我想在本地Kubernetes集群(没有 Cloud )上部署Jenkins . 我将在Jenkins之上创建2个服务 . 一个NodePort类型的服务用于端口 8080 (在随机端口上映射,我可以在集群外部访问它 . 我也可以使用 ClusterIP:8080 在集群内访问它) . 一切都很好 .

我的第二项服务是我的詹金斯奴隶可以连接 . 我选择ClusterIP(默认)作为我的服务类型:

我读到了3种类型的服务:

  • clusterIP:

在集群内部IP上公开服务 . 选择此值使服务只能从群集中访问 .

  • NodePort:50000不需要公开外部集群

  • Loadbalancer:我不在 Cloud 端工作

这是我的 .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 . 我做错了什么或有一部分我不明白?

1 回答

  • 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
    

相关问题