【问题标题】:Minikube portainer externalName not workingMinikube portainer externalName 不工作
【发布时间】:2020-11-12 08:41:22
【问题描述】:

我使用这个部署了搬运工:

kubectl apply -n portainer -f https://raw.githubusercontent.com/portainer/k8s/master/deploy/manifests/portainer/portainer.yaml

我之前创建了命名空间“portainer”。

我想通过 ingress 访问 portainer。

我用 externalName 创建了服务

    kind: Service
apiVersion: v1
metadata:
  name: portainer
  namespace: default
spec:
  type: ExternalName
  externalName: portainer.portainer.svc.cluster.local
  ports:
  - port: 9000

这是我的入口配置

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-nginx
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /portainer
        pathType: Prefix
        backend:
          service:
            name: portainer
            port:
              number: 9000

在这里我不知道为什么,但是当我调用“kubectl describe ing”时我遇到了这个问题

/portainer   portainer:9000 (<error: endpoints "portainer" not found>)

有人可以帮我吗?

【问题讨论】:

    标签: kubernetes minikube nginx-ingress portainer


    【解决方案1】:

    创建clusterIP类型的服务而不是外部名称

    【讨论】:

      【解决方案2】:

      (&lt;error: endpoints "portainer" not found&gt;) 是由于您没有将命名空间分配给命名空间的ingress 对象:

      kubectl api-resources --namespaced=true | grep ingress
      ingresses                   ing          extensions                  true         Ingress
      ingresses                   ing          networking.k8s.io           true         Ingress
      

      因此,为了更改它,您必须将其分配给 portainer 命名空间:

      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
        name: ingress-nginx
        namespace: portainer
        annotations:
          nginx.ingress.kubernetes.io/rewrite-target: /
      spec:
        rules:
        - http:
            paths:
            - path: /portainer
              pathType: Prefix
              backend:
                service:
                  name: portainer
                  port:
                    number: 9000
      

      部署时创建了一个服务(kubectl apply -n portainer -f https://raw.githubusercontent.com/portainer/k8s/master/deploy/manifests/portainer/portainer.yaml ),所以不需要创建新的,你可以简单地在ingress对象中引用它。

      然后它将分配给您在此命名空间中创建的服务:

      Rules:
        Host        Path  Backends
        ----        ----  --------
        *           
                    /portainer   portainer:9000   172.17.0.3:9000)
      Annotations:  nginx.ingress.kubernetes.io/rewrite-target: /
      Events:
        Type    Reason  Age   From                      Message
        ----    ------  ----  ----                      -------
        Normal  CREATE  47m   nginx-ingress-controller  Ingress portainer/ingress-nginx
        Normal  UPDATE  47m   nginx-ingress-controller  Ingress portainer/ingress-nginx
      

      【讨论】:

        猜你喜欢
        • 2019-12-06
        • 2022-07-15
        • 2017-12-20
        • 2018-04-04
        • 1970-01-01
        • 2021-01-16
        • 1970-01-01
        • 2021-07-13
        • 1970-01-01
        相关资源
        最近更新 更多