k8s, Ingress, Minio и статический сайт - PullRequest
0 голосов
/ 06 февраля 2019

У нас есть кластер k8s с установленными nginx Ingress и Minio.В Minio у меня есть корзина с именем tester с файлом Hello World index.html.Я использовал клиент Minio MC, чтобы установить корзину tester в public.Теперь я могу видеть файл hello world, когда захожу на мой (измененный) URL-адрес minio, например: https://minio.example.com/tester/index.html.

Моя цель - настроить ресурс Ingress для доступа к общедоступной корзине.Вот мой манифест, чтобы попытаться сделать это, однако я получаю только ошибку 404.,,

ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: frontend-site
  namespace: "default"
  labels:
    type: "frontend"
    awesomeness: "super-mega"
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
    - host: app.example.com
      http:
        paths:
          - path: /tester/
            backend:
              serviceName: minio-svc
              servicePort: 9000
          - path: /tester/*
            backend:
              serviceName: minio-svc
              servicePort: 9000
  tls:
    - hosts:
      - app.example.com
      secretName: ssl-certs

Я также пытался установить пути с индексным файлом, но безрезультатно:

path: /tester/index.html
path: /tester/index.html/*

У меня есть еще один Ingress, которыйуказывает на Minio в целом, и он отлично работает на URL, как minio.example.com.У minio есть служба, которая называется minio-svc на порту 9000.

К сожалению, я до сих пор только получал 404 от моего Ingress.Кто-нибудь еще развертывает статические сайты с Ingress в общедоступной корзине Minio?Что я делаю не так ???

Обновления

Так что я где-то попал.Я добавил аннотацию и установил пути просто / и /*.

Вот мой новый конфиг:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: frontend-site
  namespace: "default"
  labels:
    type: "frontend"
    awesomeness: "super-mega"
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /tester/index.html
spec:
  rules:
    - host: app.example.com
      http:
        paths:
          - path: /
            backend:
              serviceName: minio-svc
              servicePort: 9000
          - path: /*
            backend:
              serviceName: minio-svc
              servicePort: 9000
  tls:
    - hosts:
      - app.example.com
      secretName: ssl-certs

Теперь мне просто отказано в доступе из Minio, хотя корзина общедоступна, и я все еще могу получить доступ из https://minio.example.com/tester/index.html!?

1 Ответ

0 голосов
/ 16 августа 2019

Узнал, что ты не можешь сделать то, что я прошу, очень легко.Я обошел все это, просто смонтировав каталог из корзины непосредственно в Nginx.Voila!

...