Установка MinIO Tenant в Nova Container Platform

1. Предварительные условия

  • У вас есть доступ к кластеру с учетной записью, имеющей роль cluster-admin в Kubernetes.

  • Вы установили утилиту kubectl для работы с Kubernetes.

  • Вы установили утилиту helm для работы с чартами.

2. Шаг первый. Установка MinIO Operator

  1. Добавьте Helm репозиторий MinIO.

    helm repo add minio-operator https://operator.min.io
  2. Установите MinIO Operator.

    helm install --namespace minio-operator --create-namespace operator minio-operator/operator

3. Шаг второй. Установка MinIO Tenant

  1. Скачайте файл с переменными.

    curl -sLo values.yaml https://raw.githubusercontent.com/minio/operator/master/helm/tenant/values.yaml
  2. В файле с переменными измените значение storageClassName на ovirt-csi-sc или любой другой Storage Class, который можно использовать для Persistent Volume. Также, если нужно, измените остальные параметры, например, volumesPerServer и servers.

  3. Установите MinIO Tenant.

    helm install --namespace minio-tenant --create-namespace --values values.yaml minio-tenant minio-operator/tenant
  4. Добавьте Ingress ресурс для доступа к MinIO консоли.

    kind: Ingress
    apiVersion: networking.k8s.io/v1
    metadata:
      name: minio-console
      namespace: minio-tenant
      annotations: (1)
        nginx.ingress.kubernetes.io/backend-protocol: HTTPS
        nginx.ingress.kubernetes.io/rewrite-target: /
        nginx.ingress.kubernetes.io/ssl-redirect: 'true'
    spec:
      ingressClassName: nginx-public (2)
      tls:
        - hosts:
            - minio.apps.nova.test.local
          secretName: minio.apps.nova.test.local
      rules:
        - host: minio.apps.nova.test.local (3)
          http:
            paths:
              - path: /
                pathType: ImplementationSpecific
                backend:
                  service:
                    name: myminio-console (4)
                    port:
                      number: 9443
    1 Настройка перенаправления с HTTP на HTTPS.
    2 Указание, что нужно использовать встроенный nginx.
    3 Ссылка для подключения. Можно изменить на более подходящую.
    4 Имя сервиса, на который настроен Ingress.
  5. Добавьте Ingress ресурс для доступа к MinIO API.

    kind: Ingress
    apiVersion: networking.k8s.io/v1
    metadata:
      name: minio-api
      namespace: minio-tenant
      annotations: (1)
        nginx.ingress.kubernetes.io/backend-protocol: HTTPS
        nginx.ingress.kubernetes.io/rewrite-target: /
        nginx.ingress.kubernetes.io/ssl-redirect: 'true'
    spec:
      ingressClassName: nginx-public (2)
      tls:
        - hosts:
            - minioapi.apps.nova.test.local
          secretName: minioapi.apps.nova.test.local
      rules:
        - host: minioapi.apps.nova.test.local (3)
          http:
            paths:
              - path: /
                pathType: ImplementationSpecific
                backend:
                  service:
                    name: myminio-hl (4)
                    port:
                      number: 9000
    1 Настройка перенаправления с HTTP на HTTPS.
    2 Указание, что нужно использовать встроенный nginx.
    3 Ссылка для подключения. Можно изменить на более подходящую.
    4 Имя сервиса, на который настроен Ingress.

4. Проверка

  1. Получите доступ к MinIO консоли по ссылке https://minio.apps.nova.test.local. Данные для подключения:

    Username: minio
    Password: minio123
  2. Скачайте MinIO Client mc и подключитесь к MinIO API:

    mc alias set myminio https://minioapi.apps.nova.test.local minio minio123 --insecure