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.

Esta é uma documentação não divulgada para SUSE® Storage 1.12 (Dev).

Instalar SUSE Storage usando o Rancher

Um benefício de instalar SUSE Storage através do Marketplace de Apps do Rancher é que o Rancher fornece autenticação para a interface do usuário do SUSE Storage.

Se houver uma nova versão do SUSE Storage disponível, você verá um sinal de Upgrade Available na tela Apps Marketplace. Você pode clicar no botão Upgrade para fazer upgrade do Longhorn Manager. Veja mais sobre fazer upgrade aqui.

Pré-requisitos

Cada nó no cluster Kubernetes onde SUSE Storage está instalado deve atender a esses requisitos.

A Ferramenta de Linha de Comando do Longhorn pode ser usada para verificar o ambiente SUSE Storage em busca de problemas potenciais.

Autenticação

Para criar o namespace longhorn-system, execute o seguinte comando:

kubectl create namespace longhorn-system

Siga a documentação de autenticação do Kubernetes para criar um segredo no namespace longhorn-system.

kubectl create secret docker-registry application-collection \
  --docker-server=dp.apps.rancher.io \
  --namespace=longhorn-system \
  --docker-username=<your-username-or-service-account-username> \
  --docker-password=<access-token-or-service-account-secret>

Instalação

Para instalar SUSE Storage a partir da Coleção de Aplicativos SUSE em vez dos gráficos comunitários padrão do Longhorn do Rancher, configure um novo repositório no Rancher que aponte para o repositório de gráficos da Coleção de Aplicativos SUSE para SUSE Storage. Consulte este guia para detalhes sobre o processo e como autenticar o repositório de gráficos.

Os seguintes passos fornecem um exemplo no Rancher. Para instruções detalhadas, consulte a documentação do Rancher.

  1. No Rancher, vá para Apps > Repositórios.

    Imagem
  2. Clique no botão Criar.

  3. Escolha Repositório OCI nos botões de opção e insira o caminho do registro de gráficos OCI oci://dp.apps.rancher.io/charts/suse-storage junto com a autenticação, em seguida, clique em Criar.

    Imagem

    O repositório deve ser adicionado com sucesso.

    Imagem
  4. Em Apps > Gráfico, você pode ver suse-storage disponível para instalação.

    Imagem
  5. Clique em Instalar.

    Imagem
  6. Opcional: Selecione o projeto onde você deseja instalar SUSE Storage.

  7. Opcional: Personalize as configurações padrão.

    Imagem

    Se você estiver usando SUSE Rancher Prime, é obrigatório habilitar Container Registry for Rancher System Container Images e definir o valor como dp.apps.rancher.io para garantir que as imagens sejam puxadas do registro correto.

    Imagem
  8. Clique em Próximo. No editor YAML, adicione o valor application-collection no campo global.imagePullSecrets.

    Imagem
  9. Clique em Avançar. SUSE Storage será instalado no namespace longhorn-system.

    Imagem
  10. Clique no ícone do app SUSE Storage para navegar até o painel SUSE Storage.

    Imagem

Após a instalação do SUSE Storage, você pode acessar a interface do usuário do SUSE Storage navegando até a opção Longhorn no painel esquerdo do Rancher.

Acesse a interface com a política de rede habilitada

Observe que, quando a política de rede está habilitada, o acesso à interface a partir do Rancher pode ser restrito.

O Rancher interage com a interface do SUSE Storage através de um serviço chamado remotedialer, que facilita as conexões entre o Rancher e os clusters downstream que ele gerencia. Este serviço permite que um agente de usuário acesse o cluster através de um endpoint no servidor Rancher. O remotedialer se conecta ao serviço da interface do SUSE Storage usando o Kubernetes API Server como um proxy.

No entanto, quando a política de rede está habilitada, o Kubernetes API Server pode não conseguir alcançar pods em diferentes nós. Isso ocorre porque o Kubernetes API Server opera dentro do namespace do host sem um endereço IP dedicado por pod. Se você estiver usando o plugin CNI Calico, qualquer processo no namespace do host (como o API Server) que se conecta a um pod faz com que o Calico encapsule o pacote em IPIP antes de encaminhá-lo para o host remoto. O endereço do túnel é escolhido como a fonte para garantir que o host remoto saiba encapsular corretamente os pacotes de retorno.

Em outras palavras, para permitir que o proxy funcione com a política de rede, o IP do Túnel de cada nó deve ser identificado e explicitamente permitido na política.

Você pode encontrar o IP do Túnel por:

$ kubectl get nodes -oyaml | grep "Tunnel"
      projectcalico.org/IPv4VXLANTunnelAddr: 10.42.197.0
      projectcalico.org/IPv4VXLANTunnelAddr: 10.42.99.0
      projectcalico.org/IPv4VXLANTunnelAddr: 10.42.158.0
      projectcalico.org/IPv4VXLANTunnelAddr: 10.42.80.0

Em seguida, permita o tráfego na política de rede usando o IP do Túnel. Você pode precisar atualizar a política de rede sempre que novos nós forem adicionados ao cluster.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: longhorn-ui-frontend
  namespace: longhorn-system
spec:
  podSelector:
    matchLabels:
      app: longhorn-ui
  policyTypes:
  - Ingress
  ingress:
  - from:
    - ipBlock:
        cidr: 10.42.197.0/32
    - ipBlock:
        cidr: 10.42.99.0/32
    - ipBlock:
        cidr: 10.42.158.0/32
    - ipBlock:
        cidr: 10.42.80.0/32
    ports:
      - port: 8000
        protocol: TCP

Outra maneira de resolver o problema é executando os nós do servidor com egress-selector-mode: cluster. Para mais informações, consulte Referência de Configuração do Servidor RKE2 e configuração do Seletor de Egress do Plano de Controle K3s.