Installieren Sie SUSE Storage mit Argo CD

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 das Argo CD CLI.

  • Kubernetes-Cluster:

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

    • Installieren Sie Argo CD.

      kubectl create namespace argocd
      kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/core-install.yaml

      Lassen Sie etwas Zeit für die Implementierung der Argo CD-Komponenten im argocd Namespace.

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

Installation

  1. Melden Sie sich bei Argo CD an.

     argocd login --core
  2. Setzen Sie den aktuellen Namespace auf argocd.

     kubectl config set-context --current --namespace=argocd
  3. Erstellen Sie die SUSE Storage benutzerdefinierte Ressource für die Anwendung.

    cat > longhorn-application.yaml <<EOF
    apiVersion: argoproj.io/v1alpha1
    kind: Application
    metadata:
      name: longhorn
      namespace: argocd
    spec:
      syncPolicy:
        syncOptions:
          - CreateNamespace=true
      project: default
      sources:
        - chart: longhorn
          repoURL: https://charts.longhorn.io/
          targetRevision: v{{<current-version>}} # Replace with the Longhorn version you'd like to install or upgrade to
          helm:
            values: |
              preUpgradeChecker:
                jobEnabled: false
      destination:
        server: https://kubernetes.default.svc
        namespace: longhorn-system
      # add ignoreDifferences to prevent preserveUnknownFields field from make causing the application to be out of sync
      ignoreDifferences:
        - group: apiextensions.k8s.io
          kind: CustomResourceDefinition
          name: engineimages.longhorn.io
          jsonPointers: ["/spec/preserveUnknownFields"]
        - group: apiextensions.k8s.io
          kind: CustomResourceDefinition
          name: engines.longhorn.io
          jsonPointers: ["/spec/preserveUnknownFields"]
        - group: apiextensions.k8s.io
          kind: CustomResourceDefinition
          name: instancemanagers.longhorn.io
          jsonPointers: ["/spec/preserveUnknownFields"]
        - group: apiextensions.k8s.io
          kind: CustomResourceDefinition
          name: nodes.longhorn.io
          jsonPointers: ["/spec/preserveUnknownFields"]
        - group: apiextensions.k8s.io
          kind: CustomResourceDefinition
          name: replicas.longhorn.io
          jsonPointers: ["/spec/preserveUnknownFields"]
        - group: apiextensions.k8s.io
          kind: CustomResourceDefinition
          name: settings.longhorn.io
          jsonPointers: ["/spec/preserveUnknownFields"]
        - group: apiextensions.k8s.io
          kind: CustomResourceDefinition
          name: volumes.longhorn.io
          jsonPointers: ["/spec/preserveUnknownFields"]
    EOF
    kubectl apply -f longhorn-application.yaml
  4. Stellen Sie SUSE Storage mit den konfigurierten Einstellungen bereit.

     argocd app sync longhorn
  5. Überprüfen Sie, ob SUSE Storage erfolgreich installiert wurde.

     kubectl -n longhorn-system get pod

    Beispiel für eine erfolgreiche 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.