本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

使用 Argo CD 安装 SUSE Storage

先决条件

SUSE Storage 安装需要对 SUSE 应用程序集合的认证访问。有关更多详细信息,请查看 认证指南

  • 您的工作站:安装 Argo CD CLI

  • Kubernetes 集群:

    • 确保每个节点满足 安装要求

    • 安装 Argo CD

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

      请等待一段时间,以便在 argocd 名称空间中部署 Argo CD 组件。

Longhorn 命令行工具 可用于检查 SUSE Storage 环境中的潜在问题。

安装

  1. 登录 Argo CD。

     argocd login --core
  2. 将当前名称空间设置为 argocd

     kubectl config set-context --current --namespace=argocd
  3. 创建 SUSE Storage 应用程序自定义资源。

    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. 使用配置的设置部署 SUSE Storage。

     argocd app sync longhorn
  5. 验证 SUSE Storage 是否成功安装。

     kubectl -n longhorn-system get pod

    成功安装的示例:

     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. 创建一个带基本认证的 NGINX Ingress 控制器 以访问 UI。默认情况下,UI 的认证未启用。

  7. 访问 UI