Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi.

Il s'agit d'une documentation non publiée pour SUSE® Storage 1.12 (Dev).

Installer SUSE Storage en utilisant Rancher

Un avantage d’installer SUSE Storage via le marché des applications Rancher est que Rancher fournit une authentification à l’interface utilisateur de SUSE Storage.

S’il existe une nouvelle version de SUSE Storage disponible, vous verrez un signe Upgrade Available sur l’écran Apps Marketplace. Vous pouvez cliquer sur le bouton Upgrade pour mettre à niveau Longhorn Manager. Voir plus sur la mise à niveau ici.

Conditions préalables

Chaque nœud dans le cluster Kubernetes où SUSE Storage est installé doit remplir ces exigences.

L’outil de ligne de commande Longhorn peut être utilisé pour vérifier l’environnement SUSE Storage pour d’éventuels problèmes.

Authentification

Pour créer l’espace de noms longhorn-system, exécutez la commande suivante :

kubectl create namespace longhorn-system

Suivez la documentation d’authentification Kubernetes pour créer un secret dans l’espace de noms 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>

Installation

Pour installer SUSE Storage à partir de la collection d’applications SUSE au lieu des graphiques communautaires Longhorn par défaut de Rancher, configurez un nouveau dépôt dans Rancher qui pointe vers le dépôt de graphiques de la collection d’applications SUSE pour SUSE Storage. Reportez-vous à ce guide pour des détails sur le processus et comment authentifier le dépôt de graphiques.

Les étapes suivantes fournissent un exemple dans Rancher. Pour des instructions détaillées, reportez-vous à la documentation de Rancher.

  1. Dans Rancher, allez à Apps > Repositories.

    Image
  2. Cliquez sur le bouton Créer.

  3. Choisissez OCI Repository dans les boutons radio et entrez le chemin du registre de graphiques OCI oci://dp.apps.rancher.io/charts/suse-storage avec l’authentification, puis cliquez sur Créer.

    Image

    Le dépôt devrait être ajouté avec succès.

    Image
  4. Dans Apps > Chart, vous pouvez voir suse-storage disponible pour installation.

    Image
  5. Cliquez sur Installer.

    Image
  6. Facultatives : Sélectionnez le projet où vous souhaitez installer SUSE Storage.

  7. Facultatives : Personnalisez les paramètres par défaut.

    Image

    Si vous utilisez SUSE Rancher Prime, il est obligatoire d’activer Container Registry for Rancher System Container Images et de définir la valeur sur dp.apps.rancher.io pour garantir que les images sont tirées du bon registre.

    Image
  8. Cliquez sur Next (Suivant). Dans l’éditeur yaml, ajoutez la valeur application-collection dans le champ global.imagePullSecrets.

    Image
  9. Cliquez sur Suivant. SUSE Storage sera installé dans l’espace de noms longhorn-system.

    Image
  10. Cliquez sur l’icône de l’application SUSE Storage pour naviguer vers le tableau de bord SUSE Storage.

    Image

Après l’installation de SUSE Storage, vous pouvez accéder à l’interface utilisateur SUSE Storage en naviguant vers l’option Longhorn dans le panneau de gauche de Rancher.

Accéder à l’interface utilisateur avec la stratégie réseau activée

Notez que lorsque la stratégie réseau est activée, l’accès à l’interface utilisateur depuis Rancher peut être restreint.

Rancher interagit avec l’interface utilisateur SUSE Storage via un service appelé remotedialer, qui facilite les connexions entre Rancher et les clusters en aval qu’il gère. Ce service permet à un agent utilisateur d’accéder au cluster via un point de terminaison sur le serveur Rancher. Remotedialer se connecte au service d’interface utilisateur SUSE Storage en utilisant le serveur API Kubernetes comme proxy.

Cependant, lorsque la stratégie réseau est activée, le serveur API Kubernetes peut ne pas être en mesure d’atteindre les pods sur différents nœuds. Cela se produit parce que le serveur API Kubernetes fonctionne dans l’espace de noms de l’hôte sans adresse IP dédiée par pod. Si vous utilisez le plugin CNI Calico, tout processus dans l’espace de noms de l’hôte (comme le serveur API) se connectant à un pod déclenche Calico pour encapsuler le paquet en IPIP avant de le transmettre à l’hôte distant. L’adresse du tunnel est choisie comme source pour garantir que l’hôte distant sait encapsuler correctement les paquets de retour.

En d’autres termes, pour permettre au proxy de fonctionner avec la stratégie réseau, l’IP du tunnel de chaque nœud doit être identifiée et explicitement autorisée dans la stratégie.

Vous pouvez trouver l’IP du tunnel en :

$ 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

Ensuite, autorisez le trafic dans la stratégie réseau en utilisant l’IP du tunnel. Vous devrez peut-être mettre à jour la stratégie réseau chaque fois que de nouveaux nœuds sont ajoutés au 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

Une autre façon de résoudre le problème est d’exécuter les nœuds du serveur avec egress-selector-mode: cluster. Pour plus d’informations, consultez Référence de configuration du serveur RKE2 et configuration du sélecteur de sortie du plan de contrôle K3s.