简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

使用 Trident 操作员进行部署

提供者

您可以使用Trident操作员部署Astra Trident。

有关Astra Trident 22.10的关键信息

在升级到Astra Trident 22.10之前、您必须阅读以下关键信息。

警告
<Strong>有关Astra Trident 22.10的关键信息</Strong>
  • 现在、Trident支持Kubernetes 1.25。在升级到Kubernetes 1.25之前、您必须先升级到Astra Trident 22.10。

  • Astra Trident现在严格强制在SAN环境中使用多路径配置、建议值为 find_multipaths: no 在multipath.conf文件中。

    使用非多路径配置或 find_multipaths: yesfind_multipaths: smart multipath.conf文件中的值将导致挂载失败。Trident已建议使用 find_multipaths: no 自21.07版起。

Trident操作员部署选项

您可以通过以下两种方式之一部署Trident操作员:

  • 使用Trident "Helm图表":Helm图表将部署Trident操作符并分步安装Trident。

  • 手动:Trident提供了一个文件、可用于安装操作员和创建关联对象。

提示 如果您尚未熟悉 "基本概念",现在是一个实现这一目标的好时机。

验证前提条件

要部署 Astra Trident ,应满足以下前提条件:

  • 您对运行受支持的Kubernetes版本的受支持Kubernetes集群具有完全权限。查看 "要求"

  • 您可以访问受支持的 NetApp 存储系统。

  • 您可以从所有 Kubernetes 工作节点挂载卷。

  • 您安装了一个安装了 kubectl (如果使用的是 OpenShift ,则为 oc )的 Linux 主机,并将其配置为管理要使用的 Kubernetes 集群。

  • 您已将 KUBECONFIG 环境变量设置为指向 Kubernetes 集群配置。

  • 您已启用 "Astra Trident 所需的功能门"

  • 如果您将 Kubernetes 与 Docker Enterprise 结合使用, "按照其步骤启用 CLI 访问"

明白了吗?太棒了!让我们开始吧。

部署Trident操作员并使用Helm安装Astra Trident

执行列出的步骤以使用 Helm 部署 Trident 操作员。

除了上述前提条件之外,要使用 Helm 部署 Trident 操作员,还需要满足以下条件:

步骤
  1. 添加 Trident 的 Helm 存储库:

    helm repo add netapp-trident https://netapp.github.io/trident-helm-chart
  2. 使用 helm install 命令并为您的部署指定一个名称。请参见以下示例:

    helm install <name> netapp-trident/trident-operator --version 22.10.0 --create-namespace --namespace <trident-namespace>
    注 如果已为Trident创建命名空间、则`-create-namespace`参数不会创建额外的命名空间。

在安装期间,可以通过两种方式传递配置数据:

  • ` 值` (或 ` f` ):指定包含覆盖的 YAML 文件。可以多次指定此值,最右侧的文件将优先。

  • ` -set` :在命令行上指定覆盖。

例如,要更改默认值 debug ,请运行以下 ` -set` 命令:

helm install <name> netapp-trident/trident-operator --version 22.10.0 --create-namespace --namespace --set tridentDebug=true

Helm 图表中的 values.yaml 文件提供了键及其默认值的列表。

Helm list 显示有关安装的详细信息,例如名称,命名空间,图表,状态, 应用程序版本,修订版号等。

手动部署Trident操作员并安装Trident

执行列出的步骤以手动部署 Trident 操作员。

第 1 步:确定 Kubernetes 集群的资格

首先,您需要登录到 Linux 主机并验证它是否正在管理 _b工作 _ , "支持的 Kubernetes 集群" 您具有所需权限。

注 使用 OpenShift 时,在以下所有示例中使用 oc 而不是 kubectl ,并首先以 * 系统: admin* 的身份运行 oc login -u system : adminoc login -u Kube-admin 进行登录。

要验证Kubernetes版本、请运行以下命令:

kubectl version

要查看您是否具有 Kubernetes 集群管理员权限,请运行以下命令:

kubectl auth can-i '*' '*' --all-namespaces

要验证是否可以从 Docker Hub 启动使用映像的 POD 并通过 Pod 网络访问存储系统,请运行以下命令:

kubectl run -i --tty ping --image=busybox --restart=Never --rm -- \
  ping <management IP>

第 2 步:下载并设置操作员

注 从 21.01 开始, Trident 操作符的范围为集群范围。使用 Trident 操作符安装 Trident 需要创建 TridentOrchestrator Custom Resource Definition ( CRD )并定义其他资源。在安装 Astra Trident 之前,您应执行以下步骤来设置操作员。
  1. 从下载并提取最新版本的Trident安装程序包 "GitHub上的_assets_部分"

    wget https://github.com/NetApp/trident/releases/download/v22.10.0/trident-installer-22.10.0.tar.gz
    tar -xf trident-installer-22.10.0.tar.gz
    cd trident-installer
  2. 使用适当的 CRD 清单创建 TridentOrchestrator CRD 。然后,您可以稍后创建一个 TridentOrchestrator Custom Resource ,以通过操作员实例化安装。

    运行以下命令:

    kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
  3. 创建 TridentOrchestrator CRD 后,创建操作员部署所需的以下资源:

    • 操作员的 ServiceAccount

    • 对 ServiceAccount 执行 ClusterRole 和 ClusterRoleBinding

    • 专用的 PodSecurityPolicy

    • 运算符本身

      Trident 安装程序包含用于定义这些资源的清单。默认情况下,操作符部署在 trident 命名空间中。如果 trident 命名空间不存在,请使用以下清单创建一个。

    kubectl apply -f deploy/namespace.yaml
  4. 要在非默认 trident 命名空间中部署运算符,您应更新 serviceaccount.yamlclusterrolebinding.yamloperator.yaml 清单并生成您的 bundle.yaml

    运行以下命令以更新 YAML 清单并使用 kucstation.yaml 生成您的 bundle.yaml

    kubectl kustomize deploy/ > deploy/bundle.yaml

    运行以下命令以创建资源并部署操作员:

    kubectl create -f deploy/bundle.yaml
  5. 要在部署后验证操作员的状态,请执行以下操作:

    kubectl get deployment -n <operator-namespace>
    
    NAME               READY   UP-TO-DATE   AVAILABLE   AGE
    trident-operator   1/1     1            1           3m
    kubectl get pods -n <operator-namespace>
    
    NAME                              READY   STATUS             RESTARTS   AGE
    trident-operator-54cb664d-lnjxh   1/1     Running            0          3m

操作员部署成功创建了一个在集群中的一个工作节点上运行的 POD 。

重要 在 Kubernetes 集群中只能有 * 一个操作符实例 * 。请勿创建 Trident 操作员的多个部署。

第 3 步:创建 TridentOrchestrator 并安装 Trident

现在,您可以使用操作员安装 Astra Trident 了!这需要创建 TridentOrchestrator 。Trident 安装程序附带了用于创建 TridentOrchestrator 的示例定义。这将在 trident 命名空间中启动安装。

kubectl create -f deploy/crds/tridentorchestrator_cr.yaml
tridentorchestrator.trident.netapp.io/trident created

kubectl describe torc trident
Name:        trident
Namespace:
Labels:      <none>
Annotations: <none>
API Version: trident.netapp.io/v1
Kind:        TridentOrchestrator
...
Spec:
  Debug:     true
  Namespace: trident
Status:
  Current Installation Params:
    IPv6:                      false
    Autosupport Hostname:
    Autosupport Image:         netapp/trident-autosupport:22.10
    Autosupport Proxy:
    Autosupport Serial Number:
    Debug:                     true
    Image Pull Secrets:
    Image Registry:
    k8sTimeout:           30
    Kubelet Dir:          /var/lib/kubelet
    Log Format:           text
    Silence Autosupport:  false
    Trident Image:        netapp/trident:21.04.0
  Message:                  Trident installed  Namespace:                trident
  Status:                   Installed
  Version:                  v21.04.0
Events:
    Type Reason Age From Message ---- ------ ---- ---- -------Normal
    Installing 74s trident-operator.netapp.io Installing Trident Normal
    Installed 67s trident-operator.netapp.io Trident installed

使用 Trident 操作符,您可以使用 TridentOrchestrator 规范中的属性自定义 Astra Trident 的安装方式。请参见 "自定义 Trident 部署"

状态 TridentOrchestrator 指示安装是否成功,并显示已安装的 Trident 版本。

Status Description

安装

操作员正在使用此 TridentOrchestrator CR 安装 Astra Trident 。

已安装

Astra Trident 已成功安装。

正在卸载

操作符正在卸载 Astra Trident ,因为 sPec.uninstall=true

已卸载

Astra Trident 已卸载。

失败

操作员无法安装,修补,更新或卸载 Astra Trident ;操作员将自动尝试从此状态恢复。如果此状态仍然存在,则需要进行故障排除。

正在更新

操作员正在更新现有安装。

error

不使用 TridentOrchestrator 。另一个已存在。

在安装期间, TridentOrchestrator 的状态会从 Installing 更改为 Installed 。如果您观察到 failed 状态,并且操作员无法自行恢复,则应检查操作员的日志。请参见 "故障排除" 部分。

您可以通过查看已创建的 Pod 来确认 Astra Trident 安装是否已完成:

kubectl get pod -n trident

NAME                                READY   STATUS    RESTARTS   AGE
trident-csi-7d466bf5c7-v4cpw        5/5     Running   0           1m
trident-csi-mr6zc                   2/2     Running   0           1m
trident-csi-xrp7w                   2/2     Running   0           1m
trident-csi-zh2jt                   2/2     Running   0           1m
trident-operator-766f7b8658-ldzsv   1/1     Running   0           3m

您也可以使用 tridentctl 检查已安装的 Astra Trident 版本。

./tridentctl -n trident version

+----------------+----------------+
| SERVER VERSION | CLIENT VERSION |
+----------------+----------------+
| 21.04.0        | 21.04.0        |
+----------------+----------------+

现在,您可以继续创建后端。请参见 "部署后任务"

提示 有关在部署期间排除问题的信息,请参见 "故障排除" 部分。