0

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

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

我之前创建了命名空间“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>)

有人能帮我吗?

4

2 回答 2

0

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

于 2020-11-12T11:30:39.690 回答
0

(<error: endpoints "portainer" not found>)是由于您没有将命名空间分配给命名空间的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 ),所以不需要创建新的,你可以简单地在ingressobject.

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

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
于 2020-11-12T12:43:50.087 回答