Installieren Sie SUSE Storage mit Fleet

Voraussetzungen

Die Installation von SUSE Storage erfordert authentifizierten Zugriff auf die SUSE Application Collection. Für weitere Details, überprüfen Sie den Authentifizierungsleitfaden.

  • Ihr Arbeitsplatz: Installieren Sie Helm v3.0 oder höher.

  • Kubernetes-Cluster:

    • Stellen Sie sicher, dass jeder Knoten die Installationsanforderungen erfüllt.

    • Installieren Sie SUSE® Rancher Prime: Continuous Delivery mit Helm.

      helm repo add fleet https://rancher.github.io/fleet-helm-charts/
      helm -n cattle-fleet-system install --create-namespace --wait fleet-crd fleet/fleet-crd
      helm -n cattle-fleet-system install --create-namespace --wait fleet fleet/fleet

      Geben Sie etwas Zeit für die Implementierung der Fleet-Komponenten im cattle-fleet-system-Namespace.

Das Longhorn-Kommandozeilenwerkzeug kann verwendet werden, um die Longhorn-Umgebung auf potenzielle Probleme zu überprüfen.

Installation

  1. Erstellen Sie in Ihrem GitOps-Repository eine fleet.yaml-Datei, die Folgendes enthält:

    • Parameter zur Installation von SUSE Storage im longhorn-system-Namespace

       defaultNamespace: longhorn-system
    • Parameter für das Ignorieren modifizierter CRDs

       diff:
         comparePatches:
         - apiVersion: apiextensions.k8s.io/v1
           kind: CustomResourceDefinition
           name: engineimages.longhorn.io
           operations:
           - {"op": "replace", "path": "/status"}
         - apiVersion: apiextensions.k8s.io/v1
           kind: CustomResourceDefinition
           name: nodes.longhorn.io
           operations:
           - {"op": "replace", "path": "/status"}
         - apiVersion: apiextensions.k8s.io/v1
           kind: CustomResourceDefinition
           name: volumes.longhorn.io
           operations:
           - {"op": "replace", "path": "/status"}
         - apiVersion: apiextensions.k8s.io/v1
           kind: CustomResourceDefinition
           name: engines.longhorn.io
           operations:
           - {"op": "replace", "path": "/status"}
         - apiVersion: apiextensions.k8s.io/v1
           kind: CustomResourceDefinition
           name: instancemanagers.longhorn.io
           operations:
           - {"op": "replace", "path": "/status"}
         - apiVersion: apiextensions.k8s.io/v1
           kind: CustomResourceDefinition
           name: replicas.longhorn.io
           operations:
           - {"op": "replace", "path": "/status"}
         - apiVersion: apiextensions.k8s.io/v1
           kind: CustomResourceDefinition
           name: settings.longhorn.io
           operations:
           - {"op": "replace", "path": "/status"}
    • Parameter zur Angabe der Version des zu installierenden Helm-Charts

     helm:
       repo: https://charts.longhorn.io
       chart: longhorn
       version: v1.11.2 # Replace with the version you would like to install or upgrade to
       releaseName: longhorn

    + Beispiel einer vollständigen fleet.yaml-Datei:

    +

     defaultNamespace: longhorn-system
     helm:
       repo: https://charts.longhorn.io
       chart: longhorn
       version: v1.11.2
       releaseName: longhorn
     diff:
       comparePatches:
       - apiVersion: apiextensions.k8s.io/v1
         kind: CustomResourceDefinition
         name: engineimages.longhorn.io
         operations:
         - {"op": "replace", "path": "/status"}
       - apiVersion: apiextensions.k8s.io/v1
         kind: CustomResourceDefinition
         name: nodes.longhorn.io
         operations:
         - {"op": "replace", "path": "/status"}
       - apiVersion: apiextensions.k8s.io/v1
         kind: CustomResourceDefinition
         name: volumes.longhorn.io
         operations:
         - {"op": "replace", "path": "/status"}
  2. Erstellen Sie eine benutzerdefinierte Ressource (CR) vom Typ GitRepo, die auf Ihr GitOps-Repository verweist.

     cat > longhorn-gitrepo.yaml << "EOF"
     apiVersion: fleet.cattle.io/v1alpha1
     kind: GitRepo
     metadata:
       name: longhorn
       namespace: fleet-local
     spec:
       repo: https://github.com/your-username/your-gitops-repo.git
       revision: main
       paths:
       - .
     EOF
  3. Wenden Sie die GitRepo-CR an.

     kubectl apply -f longhorn-gitrepo.yaml
  4. Überprüfen Sie, ob die GitRepo-CR erfolgreich erstellt und synchronisiert wurde.

     kubectl -n fleet-local get gitrepo -w
  5. Überprüfen Sie, ob SUSE Storage erfolgreich installiert wurde.

     kubectl -n longhorn-system get pod

    Beispiel einer erfolgreichen Installation:

     NAME                                                READY   STATUS    RESTARTS   AGE
     longhorn-ui-b7c844b49-w25g5                         1/1     Running   0          2m41s
     longhorn-manager-pzgsp                              1/1     Running   0          2m41s
     longhorn-driver-deployer-6bd59c9f76-lqczw           1/1     Running   0          2m41s
     longhorn-csi-plugin-mbwqz                           2/2     Running   0          100s
     csi-snapshotter-588457fcdf-22bqp                    1/1     Running   0          100s
     csi-snapshotter-588457fcdf-2wd6g                    1/1     Running   0          100s
     csi-provisioner-869bdc4b79-mzrwf                    1/1     Running   0          101s
     csi-provisioner-869bdc4b79-klgfm                    1/1     Running   0          101s
     csi-resizer-6d8cf5f99f-fd2ck                        1/1     Running   0          101s
     csi-provisioner-869bdc4b79-j46rx                    1/1     Running   0          101s
     csi-snapshotter-588457fcdf-bvjdt                    1/1     Running   0          100s
     csi-resizer-6d8cf5f99f-68cw7                        1/1     Running   0          101s
     csi-attacher-7bf4b7f996-df8v6                       1/1     Running   0          101s
     csi-attacher-7bf4b7f996-g9cwc                       1/1     Running   0          101s
     csi-attacher-7bf4b7f996-8l9sw                       1/1     Running   0          101s
     csi-resizer-6d8cf5f99f-smdjw                        1/1     Running   0          101s
     instance-manager-b34d5db1fe1e2d52bcfb308be3166cfc   1/1     Running   0          114s
     engine-image-ei-df38d2e5-cv6nc                      1/1     Running   0          114s
  6. Erstellen Sie einen NGINX Ingress-Controller mit grundlegender Authentifizierung, um auf die Benutzeroberfläche zuzugreifen. Die Authentifizierung zur Benutzeroberfläche ist standardmäßig nicht aktiviert.

  7. Zugriff auf die Benutzeroberfläche.