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

これは、名前空間を持つオブジェクト(<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 ) があるため、新しいサービスを作成する必要はなく、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
于 2020-11-12T12:43:50.087 に答える