Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Crie um Ingress com Autenticação Básica (Traefik)

Se você instalar SUSE Storage em um cluster Kubernetes com kubectl ou Helm, precisará criar um Ingress para permitir que o tráfego externo chegue à interface do usuário SUSE Storage.

A autenticação não está habilitada por padrão para instalações de kubectl e Helm. Nestes passos, você precisa aprender como criar um Ingress com autenticação básica e configurar o suporte para uploads de arquivos grandes (para imagens de backup) usando Traefik.

Estas instruções assumem que o Controlador de Ingress Traefik está instalado e em execução em seu cluster. Traefik é o controlador de ingress padrão para RKE2 e K3s. Se você estiver usando um ambiente diferente, certifique-se de que o Traefik esteja implantado antes de prosseguir. Você pode verificar sua presença executando kubectl get pods -A | grep traefik.

1. Crie um Segredo de Autenticação Básica

Crie um arquivo de autenticação básica auth. É importante que o segredo tenha uma chave chamada auth para os passos seguintes.

$ USER=<USERNAME_HERE>; PASSWORD=<PASSWORD_HERE>; echo "${USER}:$(openssl passwd -stdin -apr1 <<< ${PASSWORD})" > auth

Crie o segredo no namespace longhorn-system:

$ kubectl -n longhorn-system create secret generic basic-auth --from-file=auth

2. Crie Middlewares do Traefik

O Traefik utiliza Middlewares para gerenciar autenticação e limites de requisições. Crie um arquivo chamado longhorn-middlewares.yml:

apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
  name: longhorn-auth
  namespace: longhorn-system
spec:
  basicAuth:
    secret: basic-auth
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
  name: longhorn-buffering
  namespace: longhorn-system
spec:
  buffering:
    # Allows backing image uploads up to 10,000MB
    maxRequestBodyBytes: 10485760000

Aplique a configuração:

$ kubectl apply -f longhorn-middlewares.yml

3. Crie o Manifesto do Ingress

Crie um manifesto de Ingress longhorn-ingress.yml. Para garantir que os uploads de imagens de backup funcionem como esperado, incluímos o middleware longhorn-buffering por meio de anotações.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: longhorn-ingress
  namespace: longhorn-system
  annotations:
    # Connect the middlewares defined in step 2
    traefik.ingress.kubernetes.io/router.middlewares:
      longhorn-system-longhorn-auth@kubernetescrd,
      longhorn-system-longhorn-buffering@kubernetescrd
spec:
  ingressClassName: traefik
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: longhorn-frontend
            port:
              number: 80

4. Crie o Ingress

$ kubectl -n longhorn-system apply -f longhorn-ingress.yml

Exemplo

$ USER=foo; PASSWORD=bar; echo "${USER}:$(openssl passwd -stdin -apr1 <<< ${PASSWORD})" > auth
$ kubectl -n longhorn-system create secret generic basic-auth --from-file=auth
secret/basic-auth created

# (After applying middlewares and ingress manifests)

$ kubectl -n longhorn-system get ingress
NAME                CLASS    HOSTS   ADDRESS      PORTS   AGE
longhorn-ingress   traefik   * 10.0.2.15    80      15s

$ curl -I http://10.0.2.15/
HTTP/1.1 401 Unauthorized
Www-Authenticate: Basic realm="traefik"

$ curl -u foo:bar -I http://10.0.2.15/
HTTP/1.1 200 OK

Etapas Adicionais para Clusters Kubernetes AWS EKS

Para expor o controlador de Ingress do Traefik para a internet no AWS EKS, você deve provisionar um Load Balancer da AWS. Custos adicionais podem ser aplicados.

  1. Instale o Traefik: Se o Traefik não estiver instalado em seu cluster EKS, siga o guia de instalação oficial do Helm Chart do Traefik.

  2. Configure o Load Balancer: Por padrão, definir o tipo de serviço do Traefik como LoadBalancer acionará a criação de um ELB da AWS. Para configuração avançada (como usar um NLB ou grupos de segurança específicos), consulte o Guia do Traefik para AWS.