手动部署Trident操作员(脱机模式)
您可以手动部署Trident操作员以安装Trident。此过程适用于将Trident所需的容器映像存储在私有注册表中的安装。如果没有专用映像注册表,请使用"标准部署流程"。
关于Trident10的关键信息
您必须阅读以下有关Trident的重要信息。
<strong>与Trident </strong>相关的信息
-
Trident现已支持 Kubernetes 1.34。在升级 Kubernetes 之前先升级Trident 。
-
Trident会严格强制在SAN环境中使用多路径配置、并在Multipath.conf文件中使用建议值
find_multipaths: no。使用非多路径配置或
find_multipaths: yes或find_multipaths: smartmultipath.conf文件中的值将导致挂载失败。Trident已建议使用find_multipaths: no自21.07版起。
手动部署Trident操作员并安装Trident
请查看 "安装概述" 以确保满足安装前提条件并为您的环境选择正确的安装选项。
登录到Linux主机并验证它是否正在管理正常工作的和 "支持的 Kubernetes 集群" 并且您拥有必要的特权。
|
|
使用 OpenShift 时,在以下所有示例中使用 oc 而不是 kubectl ,并首先以 * 系统: admin* 的身份运行 oc login -u system : admin 或 oc login -u Kube-admin 进行登录。
|
Details
-
验证Kubernetes版本:
kubectl version
-
验证集群管理员权限:
kubectl auth can-i '*' '*' --all-namespaces
-
验证您是否可以从Docker Hub启动使用映像的POD并通过POD网络访问存储系统:
kubectl run -i --tty ping --image=busybox --restart=Never --rm -- \ ping <management IP>
第1步:下载Trident安装程序包
Trident安装程序包包含部署Trident Operator和安装Trident所需的一切。从下载并解压缩最新版本的Trident安装程序"GitHub上的_assets_部分"。
wget https://github.com/NetApp/trident/releases/download/v6.0/trident-installer-25.10.0.tar.gz tar -xf trident-installer-25.10.0.tar.gz cd trident-installer
第2步:创建 TridentOrchestrator CRD
创建 `TridentOrchestrator`自定义资源定义(CRD)。您将创建一个 `TridentOrchestrator`稍后自定义资源。使用适当的 CRD YAML 版本 `deploy/crds`创建 `TridentOrchestrator`CRD:
kubectl create -f deploy/crds/<VERSION>.yaml
第3步:更新操作符中的注册表位置
在 /deploy/operator.yaml, 更新 `image: docker.io/netapp/trident-operator:25.10.0`反映您的图像注册位置。你的"Trident和CSI映像"CSI 镜像可以位于同一个注册表或不同的注册表中,但所有 CSI 镜像必须位于同一个注册表中。例如:
-
`image: <your-registry>/trident-operator:25.10.0`如果您的所有图片都位于同一个注册表中。
-
`image: <your-registry>/netapp/trident-operator:25.10.0`如果您的Trident镜像与 CSI 镜像位于不同的注册表中。
第4步:部署Trident操作员
Trident安装程序提供了一个可用于安装操作员和创建关联对象的捆绑包文件。通过捆绑包文件、可以使用默认配置轻松部署操作员并安装Trident。
-
对于运行Kubbernetes 1.24的集群,请使用
bundle_pre_1_25.yaml。 -
对于运行Kubernetes 1.25或更高版本的集群、请使用
bundle_post_1_25.yaml。
-
默认情况下、通过使用三端安装程序、可以在中部署操作员
trident命名空间。如果trident命名空间不存在、请使用以下命令创建命名空间:kubectl apply -f deploy/namespace.yaml
-
在非命名空间中部署操作员
trident命名空间、更新serviceaccount.yaml,clusterrolebinding.yaml和operator.yaml并使用生成捆绑包文件kustomization.yaml。-
创建
kustomization.yaml使用以下命令、其中_<bundle.yaml>_为bundle_pre_1_25.yaml或bundle_post_1_25.yaml根据您的Kubbernetes版本。cp deploy/kustomization_<bundle.yaml> deploy/kustomization.yaml
-
使用以下命令编译分发包、其中_Data <bundle.yaml>是
bundle_pre_1_25.yaml或bundle_post_1_25.yaml根据您的Kubbernetes版本。kubectl kustomize deploy/ > deploy/<bundle.yaml>
-
-
创建资源并部署操作员:
kubectl create -f deploy/<bundle.yaml>
-
验证是否已创建操作员、部署和副本集。
kubectl get all -n <operator-namespace>
|
|
在 Kubernetes 集群中只能有 * 一个操作符实例 * 。请勿创建 Trident 操作员的多个部署。 |
第5步:更新中的映像注册表位置 TridentOrchestrator
Your "Trident和CSI映像" 可以位于一个注册表或不同的注册表中、但所有CSI映像都必须位于同一注册表中。更新 deploy/crds/tridentorchestrator_cr.yaml 根据注册表配置添加其他位置规格。
imageRegistry: "<your-registry>" autosupportImage: "<your-registry>/trident-autosupport:25.10" tridentImage: "<your-registry>/trident:25.10.0"
imageRegistry: "<your-registry>" autosupportImage: "<your-registry>/trident-autosupport:25.10" tridentImage: "<your-registry>/trident:25.10.0"
第6步:创建 TridentOrchestrator 并安装Trident
现在、您可以创建 TridentOrchestrator`并安装Trident。您也可以进一步"自定义Trident安装"使用规范中的属性 `TridentOrchestrator。以下示例显示了Trident和CSI映像位于不同注册表中的安装。
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:
Autosupport Image: <your-registry>/trident-autosupport:25.10
Debug: true
Image Registry: <your-registry>
Namespace: trident
Trident Image: <your-registry>/trident:25.10.0
Status:
Current Installation Params:
IPv6: false
Autosupport Hostname:
Autosupport Image: <your-registry>/trident-autosupport:25.10
Autosupport Proxy:
Autosupport Serial Number:
Debug: true
Http Request Timeout: 90s
Image Pull Secrets:
Image Registry: <your-registry>
k8sTimeout: 30
Kubelet Dir: /var/lib/kubelet
Log Format: text
Probe Port: 17546
Silence Autosupport: false
Trident Image: <your-registry>/trident:25.10.0
Message: Trident installed
Namespace: trident
Status: Installed
Version: v25.10.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
验证安装。
可以通过多种方法验证您的安装。
使用 TridentOrchestrator status
的状态 TridentOrchestrator 指示安装是否成功、并显示已安装的Trident版本。在安装期间、的状态 TridentOrchestrator 更改自 Installing to Installed。如果您观察到 Failed 状态、并且操作员无法自行恢复、 "检查日志"。
| Status | Description |
|---|---|
安装 |
操作员正在使用此CR安装Trident |
已安装 |
已成功安装Trident。 |
正在卸载 |
操作员正在卸载Trident,因为 |
已卸载 |
Trident已卸载。 |
失败 |
操作员无法安装、修补、更新或卸载Trident;操作员将自动尝试从此状态中恢复。如果此状态仍然存在,则需要进行故障排除。 |
正在更新 |
操作员正在更新现有安装。 |
error |
不使用 |
正在使用POD创建状态
您可以通过查看已创建Pod的状态来确认Trident安装是否已完成:
kubectl get pods -n trident NAME READY STATUS RESTARTS AGE trident-controller-7d466bf5c7-v4cpw 6/6 Running 0 1m trident-node-linux-mr6zc 2/2 Running 0 1m trident-node-linux-xrp7w 2/2 Running 0 1m trident-node-linux-zh2jt 2/2 Running 0 1m trident-operator-766f7b8658-ldzsv 1/1 Running 0 3m
使用 tridentctl
您可以使用 `tridentctl`检查安装的Trident版本。
./tridentctl -n trident version +----------------+----------------+ | SERVER VERSION | CLIENT VERSION | +----------------+----------------+ | 25.10.0 | 25.10.0 | +----------------+----------------+